// Token: 0x060012B3 RID: 4787 RVA: 0x0020C44C File Offset: 0x0020A64C public LandWalker addWalker(ushort idx, byte block, bool forceFade = false) { if (this.freeWalkers.Count > 0) { LandWalker landWalker = this.freeWalkers[0]; this.freeWalkers.RemoveAt(0); this.walkers.Add(landWalker); landWalker.setUnit(idx, block, forceFade); return(landWalker); } LandWalker landWalker2 = new LandWalker(this.WalkerCenter.transform); this.walkers.Add(landWalker2); landWalker2.setUnit(idx, block, forceFade); return(landWalker2); }
// Token: 0x060012B2 RID: 4786 RVA: 0x0020C280 File Offset: 0x0020A480 public static void EndAction(LandWalker done) { ushort num = LandWalkerManager._instance.WalkerGroupIdx[(int)done.idx]; switch (LandWalkerManager._instance.walkerBattleState) { case LandWalkerManager.WalkerBattleState.ChangeForBattle: case LandWalkerManager.WalkerBattleState.ChangeForResult: case LandWalkerManager.WalkerBattleState.ChangeBackNormal: { WalkerGenData[] walkerCount = LandWalkerManager._instance.WalkerCount; ushort num2 = num - 1; walkerCount[(int)num2].Count = walkerCount[(int)num2].Count - 1; LandWalkerManager._instance.walkers.Remove(done); LandWalkerManager._instance.freeWalkers.Add(done); done.movingUnit.gameObject.SetActive(false); done.movingUnit.RecoverUnit(); return; } } if ((int)(done.idx + 1) < DataManager.Instance.LandWalkerData.TableCount && num == LandWalkerManager._instance.WalkerGroupIdx[(int)(done.idx + 1)]) { done.movingUnit.RecoverUnit(); done.setUnit(done.idx + 1, LandWalkerManager._instance.WalkerCount[(int)(num - 1)].GenBlock, false); return; } if (LandWalkerManager._instance.WalkerCount[(int)(num - 1)].isRepeat) { done.movingUnit.RecoverUnit(); done.setUnit(LandWalkerManager._instance.WalkerMarks[(int)(num - 1)], LandWalkerManager._instance.WalkerCount[(int)(num - 1)].GenBlock, false); return; } WalkerGenData[] walkerCount2 = LandWalkerManager._instance.WalkerCount; ushort num3 = num - 1; walkerCount2[(int)num3].Count = walkerCount2[(int)num3].Count - 1; LandWalkerManager._instance.walkers.Remove(done); LandWalkerManager._instance.freeWalkers.Add(done); done.movingUnit.gameObject.SetActive(false); done.movingUnit.RecoverUnit(); }
// Token: 0x060012B1 RID: 4785 RVA: 0x0020BF70 File Offset: 0x0020A170 private void PreCreateWalker() { LandWalkerManager.WalkerBattleState walkerBattleState = LandWalkerManager.performState; if (walkerBattleState != LandWalkerManager.WalkerBattleState.BattleLose) { if (walkerBattleState == LandWalkerManager.WalkerBattleState.BattleWin) { if (LandWalkerManager.LastBattleTime + 1200L > DataManager.Instance.ServerTime) { if (LandWalkerManager.StartBattle) { LandWalkerManager.StartBattle = false; this.BattleStateChange(LandWalkerManager.WalkerBattleState.ChangeForBattle); } else { this.BattleStateChange(LandWalkerManager.performState); } return; } } } else if (LandWalkerManager.LastBattleTime + 1200L > DataManager.Instance.ServerTime) { if (LandWalkerManager.StartBattle) { LandWalkerManager.StartBattle = false; this.BattleStateChange(LandWalkerManager.WalkerBattleState.ChangeForBattle); } else { this.BattleStateChange(LandWalkerManager.performState); } return; } ushort num = 0; while ((int)num < this.WalkerMarks.Count) { if (UnityEngine.Random.value <= 0.5f) { this.walkerData = DataManager.Instance.LandWalkerData.GetRecordByIndex((int)this.WalkerMarks[(int)num]); if (DataManager.StageDataController.StageRecord[2] < (ushort)this.walkerData.chapter) { this.WalkerCount[(int)num].NextGenTime = Time.time + 60f; } else if (!this.WalkerCount[(int)num].isRepeat) { if ((this.walkerData.GenData[(int)this.WalkerCount[(int)num].GenBlock].GenLimit == 0 || this.WalkerCount[(int)num].Count < this.walkerData.GenData[(int)this.WalkerCount[(int)num].GenBlock].GenLimit) && this.CastleLevel >= this.walkerData.GenData[(int)this.WalkerCount[(int)num].GenBlock].castleLevel) { this.WalkerCount[(int)num].NextGenTime = Time.time + (float)this.walkerData.GenData[(int)this.WalkerCount[(int)num].GenBlock].GenGap + (float)this.walkerData.GenData[(int)this.WalkerCount[(int)num].GenBlock].GenRandom * UnityEngine.Random.value; int num2; if ((int)(num + 1) < this.WalkerMarks.Count) { num2 = UnityEngine.Random.Range((int)this.WalkerMarks[(int)num], (int)(this.WalkerMarks[(int)(num + 1)] - 1)); } else { num2 = UnityEngine.Random.Range((int)this.WalkerMarks[(int)num], DataManager.Instance.LandWalkerData.TableCount - 1); } LandWalker landWalker = this.addWalker((ushort)num2, this.WalkerCount[(int)num].GenBlock, false); landWalker.nowTime = landWalker.totalTime * UnityEngine.Random.value; WalkerGenData[] walkerCount = this.WalkerCount; ushort num3 = num; walkerCount[(int)num3].Count = walkerCount[(int)num3].Count + 1; } } } num += 1; } }