|
|
@@ -80,23 +80,20 @@ public class Wolf : TargetAnimal
|
|
|
RunAwayFromHunter();
|
|
|
AudioMgr.ins.PlayAnimalEffect("wolf_injured", AudioMgr.GetAudioSource(this.gameObject));
|
|
|
}
|
|
|
- Queue<int> hurtFlagList = new Queue<int>();
|
|
|
+
|
|
|
+ JC.CS.CountLocker hurtFlag = new JC.CS.CountLocker();
|
|
|
void addHurtFlag() {
|
|
|
- hurtFlagList.Enqueue(0);
|
|
|
+ hurtFlag.Lock();
|
|
|
Invoke("clearOneHurtFlag", 5);
|
|
|
}
|
|
|
void clearOneHurtFlag() {
|
|
|
- if (hurtFlagList.Count > 0) {
|
|
|
- hurtFlagList.Dequeue();
|
|
|
- if (hurtFlagList.Count == 0) {
|
|
|
- OnHurtFlagTimeOut();
|
|
|
- }
|
|
|
- }
|
|
|
+ hurtFlag.Unlock();
|
|
|
+ if (hurtFlag.IsReleased()) {
|
|
|
+ onHurtFlagTimeout();
|
|
|
+ }
|
|
|
}
|
|
|
- void OnHurtFlagTimeOut() {
|
|
|
- if (!dead) {
|
|
|
- ResumeAutoStrategy();
|
|
|
- }
|
|
|
+ void onHurtFlagTimeout() {
|
|
|
+ if (!dead) ResumeAutoStrategy();
|
|
|
}
|
|
|
|
|
|
//是否已经死亡
|
|
|
@@ -252,7 +249,7 @@ public class Wolf : TargetAnimal
|
|
|
return curAnimIndex == 2;
|
|
|
}
|
|
|
void playAniRun() {
|
|
|
- if (Random.value < 0.4 || hurtFlagList.Count > 0) {
|
|
|
+ if (Random.value < 0.4 || hurtFlag.IsLocked()) {
|
|
|
curAnimIndex = 4;
|
|
|
ap.speed = 1.3f;
|
|
|
this.agent.speed = 5;
|