소스 검색

风筝忍者复活卷轴初始化

1243896040 1 주 전
부모
커밋
22c542fbe5

+ 1 - 1
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_ArmoredSamurai.cs

@@ -6,7 +6,7 @@ using UnityEngine;
 public class ESpirits_ArmoredSamurai : Enemy
 {
     [Space(30)]
-    [Title("ESpirits_AssassinÊôÐÔ")]
+    [Title("ESpirits_ArmoredSamuraiÊôÐÔ")]
     [LabelText("×îС³å´Ìʱ¼ä")] public float minDashTime;
 
     private PlayerController player;

+ 13 - 2
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_KiteNinja.cs

@@ -6,10 +6,11 @@ using UnityEngine;
 public class ESpirits_KiteNinja : Enemy
 {
     [Space(30)]
-    [Title("ESpirits_Assassin属性")]
+    [Title("ESpirits_KiteNinja属性")]
     [Tooltip("X为锁定玩家次数Y为锁定肉盾次数")]
     [LabelText("锁敌逻辑")] public Vector2 lockingLogic;
-    [LabelText("复活次数")] public int revivesNum;
+    [LabelText("复活次数")] public int totalRevivesNum;
+    public int revivesNum;
     [LabelText("复活范围")] public Vector2 revivesPos;
     [LabelText("逃跑距离")] public float fleeDistance;
     [LabelText("逃跑速度比例")] public Vector2 fleeSpeedRate;
@@ -22,6 +23,10 @@ public class ESpirits_KiteNinja : Enemy
     public override void Init()
     {
         base.Init();
+        if(revivesNum == 0)
+        {
+            revivesNum = totalRevivesNum;
+        }
         rb.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotation;
         targetIsPlayer = true;
         lockingNum = 0;
@@ -36,6 +41,12 @@ public class ESpirits_KiteNinja : Enemy
         switch (state)
         {
             case CharacterState.Die:
+                if(GameManager.instance.gameType == GameType.GameEnd)
+                {
+                    revivesNum = totalRevivesNum;
+                    gameObject.SetActive(false);
+                    return;
+                }
                 revivesNum--;
                 if (revivesNum < 0)
                 {

+ 49 - 0
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_Pinja.cs

@@ -1,8 +1,57 @@
+using Sirenix.OdinInspector;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class ESpirits_Pinja : Enemy
 {
+    [Space(30)]
+    [Title("ESpirits_PinjaÊôÐÔ")]
+    private PlayerController player;
+    public override void Init()
+    {
+        base.Init();
+        player = PlayersInput.instance[0];
+        ChooseLockingTarget();
+    }
 
+    public override void OnState()
+    {
+        switch (state)
+        {
+
+        }
+        base.OnState();
+    }
+
+    public override void ChangeState(CharacterState newState)
+    {
+        switch (state)
+        {
+            case CharacterState.Attack:
+                ChooseLockingTarget();
+                break;
+        }
+        base.ChangeState(newState);
+    }
+
+    public override bool SearchTarget()
+    {
+        targetCharacter = player;
+        return true;
+    }
+
+    public void ChooseLockingTarget()
+    {
+        targetCharacter = player;
+    }
+
+    public override void OnSearchState()
+    {
+        switch (searchState)
+        {
+
+        }
+        base.OnSearchState();
+    }
 }