private void ChangePhase(BattlePhaseName phaseName) { if (currentPhaseName == phaseName) { return; } currentPhaseName = phaseName; if (currentPhase != null) { currentPhase.OnFinish(); } if (phaseName == BattlePhaseName.PreLoad) { currentPhase = new BattlePreLoadPhase(CreatePreLoadParameterTest()); } else if (phaseName == BattlePhaseName.InGame) { currentPhase = new BattleInGamePhase(); } currentPhase.OnInit(); Debug.Log("Success Change Scene To " + currentPhaseName.ToString()); }
void Update() { if (CurrentPhase != null && CurrentPhase.IsOver()) { CurrentPhase.Finish(); CurrentPhase = CurrentPhase.GoToNext(); CurrentPhase.Execute(this); } }
public ProdDamage() { _isPlaying = false; _isFinished = false; _actCallback = null; _iBattlePhase = null; _queFriedShipModel = new Queue <ShipModel_Defender>(); _listFriendShipModel = new List <ShipModel_Defender>(); _listEnemyShipModel = new List <ShipModel_Defender>(); }
private void Start() { ShouldReload = false; Battle = new Battle(); Battle.Init(); PlayerCharacter.Init(MonsterSpawner, Battle.Player, StatsPanelController); EnemyCharacter.Init(MonsterSpawner, Battle.Enemy, StatsPanelController); StatsPanelController.gameObject.SetActive(false); CurrentPhase = new DraftPhase(); CurrentPhase.Execute(this); }
public void UpdateDamageAll(IBattlePhase iPhase, bool isFriend) { List <ShipModel_Defender> defenders = iPhase.GetDefenders(isFriend); defenders.ForEach(delegate(ShipModel_Defender x) { if (isFriend) { dicFriendBattleShips[x.Index].UpdateDamage(x); } else { dicEnemyBattleShips[x.Index].UpdateDamage(x); } }); }
protected virtual void PlayProdDamage(IBattlePhase iBattlePhase, Action onFinished) { new ProdDamage().Play(iBattlePhase, onFinished); }
public void UpdateDamageAll(IBattlePhase iPhase) { UpdateDamageAll(iPhase, isFriend: true); UpdateDamageAll(iPhase, isFriend: false); }
public void Play(IBattlePhase iBattlePhase, Action callback) { List <ShipModel_Defender> list = new List <ShipModel_Defender>(); _iBattlePhase = iBattlePhase; _actCallback = callback; _isPlaying = true; BattleTaskManager.GetBattleShips().UpdateDamageAll(iBattlePhase, isFriend: false); if (iBattlePhase.HasGekichinEvent()) { iBattlePhase.GetGekichinShips().ForEach(delegate(ShipModel_Defender x) { _queFriedShipModel.Enqueue(x); }); if (iBattlePhase.HasTaihaEvent()) { _listFriendShipModel.AddRange(iBattlePhase.GetDefenders(is_friend: true, DamagedStates.Taiha)); } if (iBattlePhase.HasChuhaEvent()) { _listFriendShipModel.AddRange(iBattlePhase.GetDefenders(is_friend: true, DamagedStates.Tyuuha)); } if (_listFriendShipModel.Count != 0) { Observable.Timer(TimeSpan.FromSeconds(1.5)).Subscribe(delegate { ProdDamage prodDamage = this; BattleShips ships = BattleTaskManager.GetBattleShips(); _listFriendShipModel.ForEach(delegate(ShipModel_Defender x) { ships.dicFriendBattleShips[x.Index].UpdateDamage(x); }); }); } PlaySinking(); } else if (iBattlePhase.HasTaihaEvent()) { list.AddRange(iBattlePhase.GetDefenders(is_friend: true, DamagedStates.Taiha)); if (iBattlePhase.HasChuhaEvent()) { list.AddRange(iBattlePhase.GetDefenders(is_friend: true, DamagedStates.Tyuuha)); } _queFriedShipModel = new Queue <ShipModel_Defender>(); int num = 0; foreach (ShipModel_Defender item in list) { if (num >= 3) { break; } _queFriedShipModel.Enqueue(item); num++; } PlayHeavyDamage(DamagedStates.Taiha); } else if (iBattlePhase.HasChuhaEvent()) { list.AddRange(iBattlePhase.GetDefenders(is_friend: true, DamagedStates.Tyuuha).ConvertAll((ShipModel_Defender s) => s)); int num2 = 0; foreach (ShipModel_Defender item2 in list) { if (num2 >= 3) { break; } _queFriedShipModel.Enqueue(item2); num2++; } PlayHeavyDamage(DamagedStates.Tyuuha); } else { OnFinished(); } list.Clear(); }
public void Play(IBattlePhase iBattlePhase, Action callback) { List <ShipModel_Defender> list = new List <ShipModel_Defender>(); this._iBattlePhase = iBattlePhase; this._actCallback = callback; this._isPlaying = true; BattleTaskManager.GetBattleShips().UpdateDamageAll(iBattlePhase, false); if (iBattlePhase.HasGekichinEvent()) { iBattlePhase.GetGekichinShips().ForEach(delegate(ShipModel_Defender x) { this._queFriedShipModel.Enqueue(x); }); if (iBattlePhase.HasTaihaEvent()) { this._listFriendShipModel.AddRange(iBattlePhase.GetDefenders(true, DamagedStates.Taiha)); } if (iBattlePhase.HasChuhaEvent()) { this._listFriendShipModel.AddRange(iBattlePhase.GetDefenders(true, DamagedStates.Tyuuha)); } if (this._listFriendShipModel.get_Count() != 0) { Observable.Timer(TimeSpan.FromSeconds(1.5)).Subscribe(delegate(long _) { BattleShips ships = BattleTaskManager.GetBattleShips(); this._listFriendShipModel.ForEach(delegate(ShipModel_Defender x) { ships.dicFriendBattleShips.get_Item(x.Index).UpdateDamage(x); }); }); } this.PlaySinking(); } else if (iBattlePhase.HasTaihaEvent()) { list.AddRange(iBattlePhase.GetDefenders(true, DamagedStates.Taiha)); if (iBattlePhase.HasChuhaEvent()) { list.AddRange(iBattlePhase.GetDefenders(true, DamagedStates.Tyuuha)); } this._queFriedShipModel = new Queue <ShipModel_Defender>(); int num = 0; using (List <ShipModel_Defender> .Enumerator enumerator = list.GetEnumerator()) { while (enumerator.MoveNext()) { ShipModel_Defender current = enumerator.get_Current(); if (num >= 3) { break; } this._queFriedShipModel.Enqueue(current); num++; } } this.PlayHeavyDamage(DamagedStates.Taiha); } else if (iBattlePhase.HasChuhaEvent()) { list.AddRange(iBattlePhase.GetDefenders(true, DamagedStates.Tyuuha).ConvertAll <ShipModel_Defender>((ShipModel_Defender s) => s)); int num2 = 0; using (List <ShipModel_Defender> .Enumerator enumerator2 = list.GetEnumerator()) { while (enumerator2.MoveNext()) { ShipModel_Defender current2 = enumerator2.get_Current(); if (num2 >= 3) { break; } this._queFriedShipModel.Enqueue(current2); num2++; } } this.PlayHeavyDamage(DamagedStates.Tyuuha); } else { this.OnFinished(); } list.Clear(); }