public override void OnChangeScene() { if (!HookFsm.CurrentState.GetType().IsAssignableFrom(typeof(Idle))) { _toEscapeFishes.Clear(); foreach (var item in _waitForResultFishs) { if (item.Value.SHook != null) { item.Value.SHook.fish = null; } //item.Value.SetEscapePath(); item.Value.OnEscape(); _level.fishMgr.AddEscaped(item.Value); } _waitForResultFishs.Clear(); foreach (var item in _hookedFishes) { item.Value.SHook.fish = null; //item.Value.SetEscapePath(); item.Value.OnEscape(); _level.fishMgr.AddEscaped(item.Value); } _hookedFishes.Clear(); float bakcPeriod = (Vector3.Distance(transform.position, _transHook.position) - _fOriginalDistance) / _fSpeedWhenChangeScene; _fBackf = 1 / bakcPeriod; _fBackI = 0; _vec3StartBackLocalPos = _transHook.localPosition; HookFsm.ChangeState <Back>(); NetWorkManager.Instance.ntfBackScore(); } }
public override void NailDownFish(int fishId, bool bIsCatch, int nLottery) { if (_hookedFishes.ContainsKey(fishId)) { int objType = _hookedFishes[fishId].ObjType; int size = InfoManager.Instance.GetFishInfo(objType).size; ResSizeInfo sizeInfo = InfoManager.Instance.GetSizeInfo(size); float struggleTime = sizeInfo.struggleTime; if (bIsCatch) { //Ensure that certain fish has been caught. // 26 or 27 means it is a chest if (objType != 26 && objType != 27) { player.LastDeltaLottery += nLottery - player.Lottery; } else { _nChestLottery = nLottery - player.Lottery; } player.Lottery = nLottery; if (struggleTime > 0) { //Recover normal speed of swimming _toEscapeFishes[0].FishAnimator.speed = 1; _toEscapeFishes.RemoveAt(0); } } else { if (struggleTime > 0) { //Recover normal speed of swimming _toEscapeFishes[0].FishAnimator.speed = 1; _hookedFishes.Remove(_toEscapeFishes[0].FishID); //Decouple fish and hook _toEscapeFishes[0].SHook.fish = null; //_toEscapeFishes [0].SetEscapePath (); _toEscapeFishes[0].OnEscape(); _level.fishMgr.AddEscaped(_toEscapeFishes[0]); //Sound Utils.PlaySound(AudioNames.FishEscape); if (UnityEngine.Random.Range(0, 1f) > 0.5f) { Utils.PlaySound(AudioNames.FishSayBye); } _toEscapeFishes.RemoveAt(0); } } HookFsm.ChangeState <Back>(); } }
public override void LaunchHook(int nAngle) { if (!HookFsm.CurrentState.GetType().IsAssignableFrom(typeof(Idle))) { _transHook.localPosition = _vec3OriginalHookLocalPos; HookFsm.ChangeState <Idle>(); } base.LaunchHook(nAngle); }
public void ChangeHooks(int number) { if (!HookFsm.CurrentState.GetType().IsAssignableFrom(typeof(Idle))) { _transHook.localPosition = _vec3OriginalHookLocalPos; HookFsm.ChangeState <Idle>(); } _changeHooks(number); }
public override void NailDownFish(int fishId, bool bIsCatch, int nLottery) { //Judge if fish in _hookedFishes if (_hookedFishes.ContainsKey(fishId)) { int objType = _hookedFishes[fishId].ObjType; int size = InfoManager.Instance.GetFishInfo(objType).size; ResSizeInfo sizeInfo = InfoManager.Instance.GetSizeInfo(size); float struggleTime = sizeInfo.struggleTime; if (bIsCatch) { //Ensure that certain fish has been caught. if (objType != 27) { player.LastDeltaLottery += nLottery - player.Lottery; } else { _nChestLottery = nLottery - player.Lottery; } player.Lottery = nLottery; if (struggleTime > 0) { if (_toEscapeFishes.Count > 0 && _toEscapeFishes[0].FishID == fishId) { //Recover normal speed of swimming _toEscapeFishes[0].FishAnimator.speed = 1; _toEscapeFishes.RemoveAt(0); } } } else { //Judge whether it is a fish that can struggle if (struggleTime > 0) { if (_toEscapeFishes.Count > 0 && _toEscapeFishes[0].FishID == fishId) { //Recover normal speed of swimming _toEscapeFishes[0].FishAnimator.speed = 1; _hookedFishes.Remove(_toEscapeFishes[0].FishID); //Decouple fish and hook _toEscapeFishes[0].SHook.fish = null; //_toEscapeFishes[0].SetEscapePath(); _toEscapeFishes[0].OnEscape(); _level.fishMgr.AddEscaped(_toEscapeFishes[0]); //Sound Utils.PlaySound(AudioNames.FishEscape); if (Random.Range(0, 1f) > 0.5f) { Utils.PlaySound(AudioNames.FishSayBye); } _toEscapeFishes.RemoveAt(0); } } } if (HookFsm.CurrentState.GetType().IsAssignableFrom(typeof(Struggle))) { HookFsm.ChangeState <Back>(); } } }