public override void PostAttributeExecute(CAbilityAttribute attribute) { // if (attribute.Id == (int)AttributeId.Health) // { // if (Health < 0) // { //target dead // } // } }
public SwordPowerAttributeSet(SwordPrimaryAttributeSet primary) { CriticalChance = new CriticalChanceAttribute(primary); CriticalMultiplier = new CriticalMultiplierAttribute(primary); PhysicalPowerMultiplier = new PhysicalPowerMultiplierAttribute(primary); SpellPowerMultiplier = new SpellPowerMultiplierAttribute(primary); MindPowerMultiplier = new SpellPowerMultiplierAttribute(primary); ArmorPenetration = new ArmorPenetrationAttribute(primary); SmashChance = new SmashChanceAttribute(primary); }
/** 力量 */ //public float Strength => StrengthBase + StrengthAddOn; // public float StrengthBase=> m_gm.GetStrengthBase(m_class, m_level); /** 敏捷 */ // public float Agility => AgilityBase + AgilityAddOn; // public float AgilityBase=> m_gm.GetAgilityBase(m_class, m_level); /// /** 智力 */ // public float Intelligence => IntelligenceBase + IntelligenceAddOn; // public float IntelligenceBase=> m_gm.GetIntelligenceBase(m_class, m_level); /// <summary> /// 物理防御 /// </summary> // public float ArmorReduction=> ArmorReductionBase + ArmorReductionAddOn; // public float ArmorReductionBase => m_gm.GetArmorReductionBase(m_class, Strength, m_initArmorReduction); /** 物理攻击 */ // public float PhysicalDamage=> PhysicalDamageBase + PhysicalDamageAddOn; // public float PhysicalDamageBase=> m_gm.GetPhysicalDamageBase(m_class, Strength, Agility, Intelligence, m_initPhysicDamage); /** 暴击率 0 -- 100*/ // public float CritChance=> CritChanceBase + CritChanceAddOn; // public float CritChanceBase=> m_gm.GetCritChanceBase(m_class, Agility); /** 暴击系数 */ // public float CritMultiplier=> CritMultiplierBase + CritMultiplierAddOn; // public float CritMultiplierBase=> m_gm.GetCritMultiplierBase(m_class, Strength, Agility, Intelligence); /** 闪避 0 -- 100 */ // public float DodgeChance=> DodgeChanceBase + DodgeChanceAddOn; // public float DodgeChanceBase=> m_gm.GetDodgeChanceBase(m_class, Agility); /** 最大血量 */ // public float MaxHealth=> MaxHealthBase * (1.0f + MaxHealthFactor) + MaxHealthAddOn; // public float MaxHealthBase=> m_gm.GetMaxHealthBase(m_class, Strength, m_initMaxHealth); /** 血量自动恢复 */ // public float HealthRecover=> HealthRecoverBase + HealthRecoverAddOn; // public float HealthRecoverBase=> m_gm.GetHealthRecoverBase(m_class, Strength, m_initHealthRecover); /** 最大蓝量 */ // public float MaxMana=> MaxManaBase * (1.0f + MaxManaFactor) + MaxManaAddOn; // public float MaxManaBase=> m_gm.GetMaxManaBase(m_class, Intelligence, m_initMaxMana); /** 蓝量自动恢复 */ // public float ManaRecover=> ManaRecoverBase + ManaRecoverAddOn; // public float ManaRecoverBase=> m_gm.GetManaRecoverBase(m_class, Intelligence, m_initManaRecover); public override void PreAttributeChange(CAbilityAttribute attribute, float newValue) { // if (attribute.Id == (int)AttributeId.Health) // { // float maxHealth = MaxHealth; // newValue = Mathf.Clamp(newValue, 0, maxHealth); //attribute.SetValue(newValue); // } // if (attribute.Id == (int)AttributeId.Mana) // { // float maxMana = MaxMana; // newValue = Mathf.Clamp(newValue, 0, maxMana); //attribute.SetValue(newValue); // } }
public void InitFromClassAndRace(ActorBornAttributeMeta classMeta, ActorBornAttributeMeta raceMeta) { //所有一级属性的基础值都是10, 然后根据种族和职业进行修正 float baseValue = 0f; float v1 = 0; v1 = classMeta.Strength + raceMeta.Strength + baseValue; Strength = new CAbilityAttribute((int)PrimaryAttribute.Strength, v1); v1 = classMeta.Dexterity + raceMeta.Dexterity + baseValue; Dexterity = new CAbilityAttribute((int)PrimaryAttribute.Dexterity, v1); v1 = classMeta.Constitution + raceMeta.Constitution + baseValue; Constitution = new CAbilityAttribute((int)PrimaryAttribute.Constitution, v1); v1 = classMeta.Intelligence + raceMeta.Intelligence + baseValue; Intelligence = new CAbilityAttribute((int)PrimaryAttribute.Intelligence, v1); v1 = classMeta.Willpower + raceMeta.Willpower + baseValue; Willpower = new CAbilityAttribute((int)PrimaryAttribute.Willpower, v1); v1 = classMeta.Luck + raceMeta.Luck + baseValue; Luck = new CAbilityAttribute((int)PrimaryAttribute.Luck, v1); }