技能加成
This commit is contained in:
parent
ae2c0eddc4
commit
8da1a9bd84
@ -152,7 +152,7 @@ public class Bullet : MonoBehaviour
|
||||
{
|
||||
direction = 1;
|
||||
}
|
||||
Crole.bloodLoss(new object[] { Crole, role.DamageCreate(), attackObj.damageTyp, role }, direction);
|
||||
Crole.bloodLoss(new object[] { Crole, role.DamageCreate(Crole.GetComponent<Role>()), attackObj.damageTyp, role }, direction);
|
||||
attackObj.bulltes.Remove(this.gameObject);
|
||||
|
||||
if (myBulletType != BulletType.Spraying)
|
||||
@ -237,7 +237,7 @@ public class Bullet : MonoBehaviour
|
||||
if (Time.time - lastDamageTime > 1f) // 每秒扣一次血
|
||||
{
|
||||
|
||||
Crole.bloodLoss(new object[] { Crole, role.DamageCreate(), attackObj.damageTyp, role });
|
||||
Crole.bloodLoss(new object[] { Crole, role.DamageCreate( Crole.GetComponent<Role>()), attackObj.damageTyp, role });
|
||||
Crole.FlashRedEffect();
|
||||
lastDamageTime = Time.time;
|
||||
}
|
||||
|
63
Role/Role.cs
63
Role/Role.cs
@ -32,6 +32,7 @@ public enum Camp
|
||||
|
||||
public enum CharacterFlags
|
||||
{
|
||||
no=0<<0,
|
||||
fly = 1 << 0,
|
||||
land = 1 << 1,
|
||||
big = 1 << 2,
|
||||
@ -52,8 +53,6 @@ public class Role : Fun
|
||||
[Header("名称")] public string Name;
|
||||
[Header("阵营")] public Camp camp ;
|
||||
[Header("血量")] public float hp = 100f;//血量
|
||||
//[Header("技能")] public List<Skill> Myskill;//技能
|
||||
|
||||
private float maxHp;
|
||||
[Header(("死亡动画编号"))] public int dieIndex=-1;
|
||||
|
||||
@ -169,12 +168,13 @@ public class Role : Fun
|
||||
|
||||
public List<BUff> buffList = new List<BUff>();
|
||||
|
||||
public CharacterFlags Tags = 0;
|
||||
public CharacterFlags myTags = 0;
|
||||
public bool hasfalg(CharacterFlags flag)
|
||||
{
|
||||
return (Tags & flag) == flag;
|
||||
return (myTags & flag) == flag;
|
||||
}
|
||||
|
||||
public SkillUp mySkillUp;
|
||||
|
||||
/// <summary>
|
||||
/// 储存buff
|
||||
@ -202,10 +202,6 @@ public class Role : Fun
|
||||
}
|
||||
tag = Enum.GetName(typeof(Camp), camp);
|
||||
updateAnimation();
|
||||
|
||||
|
||||
|
||||
//AddBuff(storageBuff,this.CreateDecelerationBuff(10f,1f));
|
||||
}
|
||||
|
||||
|
||||
@ -328,7 +324,6 @@ public class Role : Fun
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
animationHighlight = hitIndex;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -340,10 +335,6 @@ public class Role : Fun
|
||||
{
|
||||
Navigation.speedFactor *= num;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 单位更新buff
|
||||
/// </summary>
|
||||
@ -465,13 +456,6 @@ public class Role : Fun
|
||||
});
|
||||
}
|
||||
|
||||
// 升级逻辑
|
||||
public virtual void Upgrade()
|
||||
{
|
||||
Debug.Log("父类的升级逻辑,空的,请在子类重写");
|
||||
}
|
||||
|
||||
|
||||
public void SetSelfInfo()
|
||||
{
|
||||
|
||||
@ -502,20 +486,49 @@ public class Role : Fun
|
||||
|
||||
}
|
||||
|
||||
public float DamageCreate()//伤害生成
|
||||
/// <summary>
|
||||
/// 计算伤害
|
||||
/// </summary>
|
||||
/// <param name="self">造成者</param>
|
||||
/// <param name="Target">目标</param>
|
||||
/// <returns></returns>
|
||||
public float DamageCreate(Role Target)//伤害生成
|
||||
{
|
||||
// 生成普通伤害
|
||||
float num = UnityEngine.Random.Range(MinAttack, MaxAttack);
|
||||
float hurt = UnityEngine.Random.Range(MinAttack, MaxAttack);
|
||||
// 判断是否暴击
|
||||
float critChance = UnityEngine.Random.Range(0f, 1f); // 生成一个0到1之间的随机数
|
||||
if (critChance < CritRate) // 如果暴击发生
|
||||
|
||||
|
||||
if (critChance < CritRate*(1+mySkillUp.CriticalRate)) // 如果暴击发生
|
||||
{
|
||||
// 计算暴击伤害(普通伤害乘以暴击加成)
|
||||
num *= (1 + CriticalHitRateBonus);
|
||||
hurt *= (1 + CriticalHitRateBonus*(1+ mySkillUp.CriticalDamage));
|
||||
//Debug.Log("暴击发生!伤害增加:" + num);
|
||||
}
|
||||
|
||||
return num;
|
||||
if (Target.hasfalg(CharacterFlags.big)) // 如果是大型敌人
|
||||
{
|
||||
hurt*=(1+mySkillUp.DamageOfBig);
|
||||
}
|
||||
|
||||
if (Target.hasfalg(CharacterFlags.min)) // 如果是大型敌人
|
||||
{
|
||||
hurt *= (1 + mySkillUp.DamageOfMin);
|
||||
}
|
||||
|
||||
if (Target.hasfalg(CharacterFlags.fly)) // 如果是飞行敌人
|
||||
{
|
||||
hurt *= (1 + mySkillUp.DamageOfSky);
|
||||
}
|
||||
|
||||
if (Target.hasfalg(CharacterFlags.land)) // 如果是地面敌人
|
||||
{
|
||||
hurt *= (1 + mySkillUp.DamageOfland);
|
||||
}
|
||||
|
||||
|
||||
return hurt;
|
||||
}
|
||||
|
||||
public virtual void SlowDown(float slowFactor, float duration)
|
||||
|
Loading…
Reference in New Issue
Block a user