技能加成
This commit is contained in:
parent
ae2c0eddc4
commit
8da1a9bd84
@ -152,7 +152,7 @@ public class Bullet : MonoBehaviour
|
|||||||
{
|
{
|
||||||
direction = 1;
|
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);
|
attackObj.bulltes.Remove(this.gameObject);
|
||||||
|
|
||||||
if (myBulletType != BulletType.Spraying)
|
if (myBulletType != BulletType.Spraying)
|
||||||
@ -237,7 +237,7 @@ public class Bullet : MonoBehaviour
|
|||||||
if (Time.time - lastDamageTime > 1f) // 每秒扣一次血
|
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();
|
Crole.FlashRedEffect();
|
||||||
lastDamageTime = Time.time;
|
lastDamageTime = Time.time;
|
||||||
}
|
}
|
||||||
|
63
Role/Role.cs
63
Role/Role.cs
@ -32,6 +32,7 @@ public enum Camp
|
|||||||
|
|
||||||
public enum CharacterFlags
|
public enum CharacterFlags
|
||||||
{
|
{
|
||||||
|
no=0<<0,
|
||||||
fly = 1 << 0,
|
fly = 1 << 0,
|
||||||
land = 1 << 1,
|
land = 1 << 1,
|
||||||
big = 1 << 2,
|
big = 1 << 2,
|
||||||
@ -52,8 +53,6 @@ public class Role : Fun
|
|||||||
[Header("名称")] public string Name;
|
[Header("名称")] public string Name;
|
||||||
[Header("阵营")] public Camp camp ;
|
[Header("阵营")] public Camp camp ;
|
||||||
[Header("血量")] public float hp = 100f;//血量
|
[Header("血量")] public float hp = 100f;//血量
|
||||||
//[Header("技能")] public List<Skill> Myskill;//技能
|
|
||||||
|
|
||||||
private float maxHp;
|
private float maxHp;
|
||||||
[Header(("死亡动画编号"))] public int dieIndex=-1;
|
[Header(("死亡动画编号"))] public int dieIndex=-1;
|
||||||
|
|
||||||
@ -169,12 +168,13 @@ public class Role : Fun
|
|||||||
|
|
||||||
public List<BUff> buffList = new List<BUff>();
|
public List<BUff> buffList = new List<BUff>();
|
||||||
|
|
||||||
public CharacterFlags Tags = 0;
|
public CharacterFlags myTags = 0;
|
||||||
public bool hasfalg(CharacterFlags flag)
|
public bool hasfalg(CharacterFlags flag)
|
||||||
{
|
{
|
||||||
return (Tags & flag) == flag;
|
return (myTags & flag) == flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SkillUp mySkillUp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 储存buff
|
/// 储存buff
|
||||||
@ -202,10 +202,6 @@ public class Role : Fun
|
|||||||
}
|
}
|
||||||
tag = Enum.GetName(typeof(Camp), camp);
|
tag = Enum.GetName(typeof(Camp), camp);
|
||||||
updateAnimation();
|
updateAnimation();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//AddBuff(storageBuff,this.CreateDecelerationBuff(10f,1f));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -328,7 +324,6 @@ public class Role : Fun
|
|||||||
if (Application.isPlaying)
|
if (Application.isPlaying)
|
||||||
{
|
{
|
||||||
animationHighlight = hitIndex;
|
animationHighlight = hitIndex;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -340,10 +335,6 @@ public class Role : Fun
|
|||||||
{
|
{
|
||||||
Navigation.speedFactor *= num;
|
Navigation.speedFactor *= num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 单位更新buff
|
/// 单位更新buff
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -465,13 +456,6 @@ public class Role : Fun
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 升级逻辑
|
|
||||||
public virtual void Upgrade()
|
|
||||||
{
|
|
||||||
Debug.Log("父类的升级逻辑,空的,请在子类重写");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void SetSelfInfo()
|
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之间的随机数
|
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);
|
//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)
|
public virtual void SlowDown(float slowFactor, float duration)
|
||||||
|
Loading…
Reference in New Issue
Block a user