فهرست منبع

变身刺客召唤的大棒有概率暴击

LAPTOP-OM1V99U2\永远de小亡灵 1 سال پیش
والد
کامیت
9e120ba66b

+ 5 - 2
ActionTowerDefense/Assets/Resources/Prefab/Transfiguration/Trans_Assassin.prefab

@@ -190,7 +190,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   player: {fileID: 0}
-  criticalChance: 1
+  criticalChance: 0.2
   criticalMultiplier: 2
 --- !u!114 &2437299196472462353
 MonoBehaviour:
@@ -217,7 +217,6 @@ MonoBehaviour:
   rb: {fileID: 0}
   bodyTrans: {fileID: 2730232521377132808}
   beSearchTrigger: {fileID: 1317309795988277421}
-  attackTrigger: {fileID: 0}
   uiHp: {fileID: 6433555643392153575}
   state: 0
   attackTime: 0
@@ -264,6 +263,8 @@ MonoBehaviour:
   canHitFloat: 0
   floatProbability: 0
   attackToFloat: 0
+  floatTimes: 0
+  hasFloatTimes: 0
   isSoulUnstable: 0
   soulUnstableTime: 0
   criticalChance: 0
@@ -664,6 +665,8 @@ MonoBehaviour:
   offsetY: 1
   hitRate: 1
   Miss: {fileID: 0}
+  criticalRandom: 0
+  isRandom: 0
 --- !u!1 &7669620205589286043
 GameObject:
   m_ObjectHideFlags: 0

+ 17 - 2
ActionTowerDefense/Assets/Scripts/AttackTrigger.cs

@@ -15,12 +15,26 @@ public class AttackTrigger : MonoBehaviour
     public int offsetY = 1;
     public float hitRate = 1;
     [HideInInspector]public GameObject Miss;
+    public float criticalRandom;
+    public bool isRandom;
 
     private void Awake()
     {
         owner = GetComponentInParent<Character>();
+        
+    }
+    private void Update()
+    {
+        if (!isRandom)
+        {
+            criticalRandom = Random.Range(0f, 1f);
+            isRandom = true;
+        }
+    }
+    private void OnDisable()
+    {
+        isRandom = false;
     }
-
     private void OnTriggerEnter(Collider other)
     {
         BeHitTrigger hitTrigger = other.GetComponent<BeHitTrigger>();
@@ -40,8 +54,9 @@ public class AttackTrigger : MonoBehaviour
                 trigedObjs.Add(hitTrigger);
                 if (Util.CheckCanHit(owner.tag, hitTrigger.owner.tag) && !hitTrigger.owner.isDie)
                 {
-                    if (Random.Range(0f, 1f) < owner.criticalChance)
+                    if (criticalRandom < owner.criticalChance)
                     {
+
                         hitTrigger.BeHit((int)(damage * owner.criticalMultiplier), force 
                             * owner.criticalMultiplier, changeHurt, repelValue);
                         GameObject effect = Instantiate(spiritsAttackEffect);

+ 0 - 1
ActionTowerDefense/Assets/Scripts/Character.cs

@@ -64,7 +64,6 @@ public class Character : MonoBehaviour
     public Rigidbody rb;
     public Transform bodyTrans;
     public BeSearchTrigger beSearchTrigger;
-    public AttackTrigger attackTrigger;
     public UIHP uiHp;
 
     public CharacterState state;

+ 5 - 0
ActionTowerDefense/Assets/Scripts/Spirits/Trans_Assassin.cs

@@ -24,5 +24,10 @@ public class Trans_Assassin : MonoBehaviour
     void Skill()
     {
 
+    }
+    private void OnDisable()
+    {
+        player.criticalChance = 0;
+
     }
 }