コード例 #1
0
ファイル: FightCharacter.cs プロジェクト: shuitian/Libgame
 /// <summary>
 /// 受到伤害
 /// </summary>
 /// <param name="damage">受到的伤害</param>
 public virtual void TakeDamages(Damage damage)
 {
     BaseNoArmorComponent armor = GetComponent<BaseNoArmorComponent>();
     Damage newDamage = armor.CalculateDamage(damage);
     this.hpComponent.LosePoint(newDamage.source, newDamage.realTotalDamage);
 }
コード例 #2
0
ファイル: AttackComponent.cs プロジェクト: shuitian/Libgame
 /// <summary>
 /// 获取伤害数据结果
 /// </summary>
 /// <param name="source">源</param>
 /// <param name="target">目标</param>
 /// <returns></returns>
 public Damage GetAttackDamage(Character source, Character target)
 {
     Damage damage = new Damage(attacks.GetAttacks(), null, source, target);
     return damage;
 }
コード例 #3
0
ファイル: ArmorComponent.cs プロジェクト: shuitian/Libgame
 /// <summary>
 /// 计算护甲抵挡后的伤害,override
 /// </summary>
 /// <param name="damage">抵挡前的伤害</param>
 /// <returns>抵挡后的伤害</returns>
 public override Damage CalculateDamage(Damage damage)
 {
     for (int i = 0; i < damage.realDamages.Length; i++)
     {
         damage.realDamages[i] *= (damageModifiedValue) / (damageModifiedValue + Mathf.Max(Mathf.Min(armorList[i], maxArmor), minArmor));
     }
     return damage;
 }
コード例 #4
0
ファイル: ArmorComponent.cs プロジェクト: shuitian/Libgame
 /// <summary>
 /// 计算护甲抵挡后的伤害,override
 /// </summary>
 /// <param name="damage">抵挡前的伤害</param>
 /// <returns>抵挡后的伤害</returns>
 public override Damage CalculateDamage(Damage damage)
 {
     for (int i = 0; i < damage.realDamages.Length; i++)
     {
         damage.realDamages[i] -= Mathf.Max(Mathf.Min(armorList[i], maxArmor), minArmor);
     }
     return damage;
 }
コード例 #5
0
ファイル: ArmorComponent.cs プロジェクト: shuitian/Libgame
 /// <summary>
 /// 计算护甲抵挡后的伤害,virtual
 /// </summary>
 /// <param name="damage">抵挡前的伤害</param>
 /// <returns>抵挡后的伤害</returns>
 public virtual Damage CalculateDamage(Damage damage)
 {
     return damage;
 }