|
@@ -106,14 +106,14 @@ public class Character : MonoBehaviour
|
|
|
[HideInInspector]
|
|
[HideInInspector]
|
|
|
public bool isNonAttack = false; //无普攻
|
|
public bool isNonAttack = false; //无普攻
|
|
|
public float attackTime;
|
|
public float attackTime;
|
|
|
- public float totalAttack1Time = 0.5f;
|
|
|
|
|
- public float totalAttack2Time = 0.5f;
|
|
|
|
|
|
|
+ public float totalAttack_summonTime = 0.5f;
|
|
|
|
|
+ public float totalAttack_marchTime = 0.5f;
|
|
|
public AttackType attackType; //攻击类型
|
|
public AttackType attackType; //攻击类型
|
|
|
public GameObject bulletPrefab; //远程攻击的子弹
|
|
public GameObject bulletPrefab; //远程攻击的子弹
|
|
|
public List<Transform> shootPos; //远程攻击的子弹发射位置
|
|
public List<Transform> shootPos; //远程攻击的子弹发射位置
|
|
|
public bool shootTrack = false; //远程攻击是否追踪目标
|
|
public bool shootTrack = false; //远程攻击是否追踪目标
|
|
|
- public List<AttackInfo> attack1Infos; //普攻1信息(出场攻击)
|
|
|
|
|
- public List<AttackInfo> attack2Infos; //普攻2信息
|
|
|
|
|
|
|
+ public List<AttackInfo> Attack_summonInfos; //普攻1信息(出场攻击)
|
|
|
|
|
+ public List<AttackInfo> Attack_marchInfos; //普攻2信息
|
|
|
public List<AttackTrigger> attackTriggers; //普攻触发器,敌方进入后播放动画进行攻击
|
|
public List<AttackTrigger> attackTriggers; //普攻触发器,敌方进入后播放动画进行攻击
|
|
|
public GameObject addAttackEffect;
|
|
public GameObject addAttackEffect;
|
|
|
public int armorPiercing; //穿甲率
|
|
public int armorPiercing; //穿甲率
|
|
@@ -149,7 +149,7 @@ public class Character : MonoBehaviour
|
|
|
public GameObject cookEffect; //吃串加血
|
|
public GameObject cookEffect; //吃串加血
|
|
|
|
|
|
|
|
[Header("传送门")]
|
|
[Header("传送门")]
|
|
|
- public bool attack1ShootCanTransmit; //普攻1弓箭可以被传送
|
|
|
|
|
|
|
+ public bool Attack_summonShootCanTransmit; //普攻1弓箭可以被传送
|
|
|
|
|
|
|
|
//调试开关
|
|
//调试开关
|
|
|
[Header("debug攻击者")] public bool debugAttackFrom;
|
|
[Header("debug攻击者")] public bool debugAttackFrom;
|
|
@@ -192,15 +192,15 @@ public class Character : MonoBehaviour
|
|
|
{
|
|
{
|
|
|
rope = null;
|
|
rope = null;
|
|
|
}
|
|
}
|
|
|
- curDamage1 = new int[attack1Infos.Count];
|
|
|
|
|
- for (int i = 0; i < attack1Infos.Count; i++)
|
|
|
|
|
|
|
+ curDamage1 = new int[Attack_summonInfos.Count];
|
|
|
|
|
+ for (int i = 0; i < Attack_summonInfos.Count; i++)
|
|
|
{
|
|
{
|
|
|
- curDamage1[i] = attack1Infos[i].damage;
|
|
|
|
|
|
|
+ curDamage1[i] = Attack_summonInfos[i].damage;
|
|
|
}
|
|
}
|
|
|
- curDamage2 = new int[attack2Infos.Count];
|
|
|
|
|
- for (int i = 0; i < attack2Infos.Count; i++)
|
|
|
|
|
|
|
+ curDamage2 = new int[Attack_marchInfos.Count];
|
|
|
|
|
+ for (int i = 0; i < Attack_marchInfos.Count; i++)
|
|
|
{
|
|
{
|
|
|
- curDamage2[i] = attack2Infos[i].damage;
|
|
|
|
|
|
|
+ curDamage2[i] = Attack_marchInfos[i].damage;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -277,11 +277,11 @@ public class Character : MonoBehaviour
|
|
|
AttackInfo attackInfo;
|
|
AttackInfo attackInfo;
|
|
|
if (attackId == 1)
|
|
if (attackId == 1)
|
|
|
{
|
|
{
|
|
|
- attackInfo = attack1Infos[shootId];
|
|
|
|
|
|
|
+ attackInfo = Attack_summonInfos[shootId];
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- attackInfo = attack2Infos[shootId];
|
|
|
|
|
|
|
+ attackInfo = Attack_marchInfos[shootId];
|
|
|
attackInfo.damage = curDamage2[0];
|
|
attackInfo.damage = curDamage2[0];
|
|
|
}
|
|
}
|
|
|
GameObject bulletObj = PoolManager.Instantiate(bulletPrefab);
|
|
GameObject bulletObj = PoolManager.Instantiate(bulletPrefab);
|
|
@@ -291,7 +291,7 @@ public class Character : MonoBehaviour
|
|
|
{
|
|
{
|
|
|
attackDir.x = -attackDir.x;
|
|
attackDir.x = -attackDir.x;
|
|
|
}
|
|
}
|
|
|
- if (attackId == 1 && attack1ShootCanTransmit)
|
|
|
|
|
|
|
+ if (attackId == 1 && Attack_summonShootCanTransmit)
|
|
|
{
|
|
{
|
|
|
bullet.canTransmit = true;
|
|
bullet.canTransmit = true;
|
|
|
}
|
|
}
|
|
@@ -304,27 +304,27 @@ public class Character : MonoBehaviour
|
|
|
return moveDir;
|
|
return moveDir;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public virtual void attack_summon()
|
|
|
|
|
|
|
+ public virtual void Attack_summon()
|
|
|
{
|
|
{
|
|
|
- ani.Play("attack_summon", 0, 0);
|
|
|
|
|
|
|
+ ani.Play("Attack_summon", 0, 0);
|
|
|
if (!isNonAttack)
|
|
if (!isNonAttack)
|
|
|
{
|
|
{
|
|
|
- aniCollider.Play("attack_summon", 1, 0);
|
|
|
|
|
- attackTime = totalAttack1Time;
|
|
|
|
|
|
|
+ aniCollider.Play("Attack_summon", 1, 0);
|
|
|
|
|
+ attackTime = totalAttack_summonTime;
|
|
|
switch (attackType)
|
|
switch (attackType)
|
|
|
{
|
|
{
|
|
|
case AttackType.Melee:
|
|
case AttackType.Melee:
|
|
|
- for (int i = 0; i < attack1Infos.Count; i++)
|
|
|
|
|
|
|
+ for (int i = 0; i < Attack_summonInfos.Count; i++)
|
|
|
{
|
|
{
|
|
|
attackTriggers[i].damage = curDamage1[i];
|
|
attackTriggers[i].damage = curDamage1[i];
|
|
|
- attackTriggers[i].changeHurt = attack1Infos[i].changeHurt;
|
|
|
|
|
- attackTriggers[i].repelValue = attack1Infos[i].repelValue;
|
|
|
|
|
- Vector3 attackDir = attack1Infos[i].attackDir.normalized;
|
|
|
|
|
|
|
+ attackTriggers[i].changeHurt = Attack_summonInfos[i].changeHurt;
|
|
|
|
|
+ attackTriggers[i].repelValue = Attack_summonInfos[i].repelValue;
|
|
|
|
|
+ Vector3 attackDir = Attack_summonInfos[i].attackDir.normalized;
|
|
|
if (bodyTrans.localScale.x < 0)
|
|
if (bodyTrans.localScale.x < 0)
|
|
|
{
|
|
{
|
|
|
attackDir.x = -attackDir.x;
|
|
attackDir.x = -attackDir.x;
|
|
|
}
|
|
}
|
|
|
- attackTriggers[i].force = attackDir * attack1Infos[i].force;
|
|
|
|
|
|
|
+ attackTriggers[i].force = attackDir * Attack_summonInfos[i].force;
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case AttackType.Shoot:
|
|
case AttackType.Shoot:
|
|
@@ -338,7 +338,7 @@ public class Character : MonoBehaviour
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public virtual void attack_march()
|
|
|
|
|
|
|
+ public virtual void Attack_march()
|
|
|
{
|
|
{
|
|
|
Vector3 leftDir = GetMoveDir();
|
|
Vector3 leftDir = GetMoveDir();
|
|
|
if (leftDir.x > 0.3f)
|
|
if (leftDir.x > 0.3f)
|
|
@@ -356,22 +356,22 @@ public class Character : MonoBehaviour
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- ani.Play("attack_march", 0, 0);
|
|
|
|
|
- aniCollider.Play("attack_march", 1, 0);
|
|
|
|
|
- attackTime = totalAttack2Time;
|
|
|
|
|
|
|
+ ani.Play("Attack_march", 0, 0);
|
|
|
|
|
+ aniCollider.Play("Attack_march", 1, 0);
|
|
|
|
|
+ attackTime = totalAttack_marchTime;
|
|
|
if (attackTriggers.Count > 0)
|
|
if (attackTriggers.Count > 0)
|
|
|
{
|
|
{
|
|
|
- for (int i = 0; i < attack2Infos.Count; i++)
|
|
|
|
|
|
|
+ for (int i = 0; i < Attack_marchInfos.Count; i++)
|
|
|
{
|
|
{
|
|
|
attackTriggers[i].damage = curDamage2[i];
|
|
attackTriggers[i].damage = curDamage2[i];
|
|
|
- attackTriggers[i].changeHurt = attack2Infos[i].changeHurt;
|
|
|
|
|
- attackTriggers[i].repelValue = attack2Infos[i].repelValue;
|
|
|
|
|
- Vector3 attackDir = attack2Infos[i].attackDir.normalized;
|
|
|
|
|
|
|
+ attackTriggers[i].changeHurt = Attack_marchInfos[i].changeHurt;
|
|
|
|
|
+ attackTriggers[i].repelValue = Attack_marchInfos[i].repelValue;
|
|
|
|
|
+ Vector3 attackDir = Attack_marchInfos[i].attackDir.normalized;
|
|
|
if (bodyTrans.localScale.x < 0)
|
|
if (bodyTrans.localScale.x < 0)
|
|
|
{
|
|
{
|
|
|
attackDir.x = -attackDir.x;
|
|
attackDir.x = -attackDir.x;
|
|
|
}
|
|
}
|
|
|
- attackTriggers[i].force = attackDir * attack2Infos[i].force;
|
|
|
|
|
|
|
+ attackTriggers[i].force = attackDir * Attack_marchInfos[i].force;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|