private void SceneChangeManagement(Scene scene, LoadSceneMode current) { NextStageTrigger = GameObject.FindWithTag("Portal");//Finds Next Level Trigger in current scene if (NextStageTrigger != null) { NextStageTrigger.gameObject.GetComponent <Collider>().isTrigger = true;//Makes sure the Trigger is actually a trigger } else { return; } StageLogic = GameObject.FindWithTag("Stage");//Finds Stage Logic in current scene if (StageLogic == null) { Debug.Log("No Stage Logic is present, Please add one to the current scene"); } //Add to this list to add additional Stage Logic Objectives if (StageLogic.GetComponent <StageLogicGoTo>() != null) { isGoTo = true; } if (StageLogic.GetComponent <StageLogicKillAll>() != null) { isKillAll = true; } animator.SetBool("IsChanging", false); NextSceneToLoad = NextStageTrigger.GetComponent <PortalScript>().NextLevel; }
public Vector3 Load(LevelNode levelNode, int levelId, int stageId, Vector3 startpos) { stageEntity = LevelResManager.Instance.GetStage(levelId, levelNode.type); //stageEntity.gameObject.transform.position = levelNode.GetPosition (LevelManager.width,LevelManager.heigh); Vector3 local = startpos; local.x = local.x + stageEntity.getXSize() * 0.5f; local.y = local.y + stageEntity.getYSize() * 0.5f; stageEntity.gameObject.transform.position = local; if (levelNode.type == eNodeType.Start) { stageEntity.gameObject.name = "start"; } if (levelNode.type == eNodeType.End) { stageEntity.gameObject.name = "end"; } if (levelNode.type == eNodeType.Boss) { stageEntity.gameObject.name = "boss"; } if (levelNode.type == eNodeType.Normal) { stageEntity.gameObject.name = "normal"; } stageEntity.InitDoorState(levelNode, stageId); stageEntity.OpenAllEnableDoor(); startpos.x = startpos.x + stageEntity.getXSize(); return(startpos); }
public StageFacade(IServiceProvider serviceProvider, DealTrackingDbContext dbContext) { this.DbContext = dbContext; this.DbSet = this.DbContext.Set <Stage>(); this.IdentityService = serviceProvider.GetService <IdentityService>(); this.StageLogic = serviceProvider.GetService <StageLogic>(); }
public void ExitState(int stageId) { if (currentStage != null) { currentStage.OnExit(); } currentStage = null; }
/// <summary> /// 地图编辑器测试运行使用 /// </summary> /// <param name="target"></param> public void PlaceOneStageForTest(StageLogic target) { stageList = new List <StageInstance>(); edgeList = new List <EdgeInstance>(); StageInstance stage = new StageInstance(); stage.stageEntity = target; EnterState(0); }
public static StageLogic RandomMonsters(string stageID, List <ELEMENT_TYPE> skillElement, List <ELEMENT_TYPE> monsterEle) { StageLogic stageLogic = new StageLogic(); stageLogic._Waves = new List <WaveInfo>(); int randomWave = GameRandom.GetRandomLevel(10, 60, 35) + 1; List <int> waves = GetRandomValue(randomWave, 3, 3, 1); int stageIdInt = int.Parse(stageID); string stageBaseID = (stageIdInt + 1000).ToString(); for (int i = 0; i < randomWave; ++i) { WaveInfo waveInfo = new WaveInfo(); stageLogic._Waves.Add(waveInfo); waveInfo.NPCs = new List <string>(); int atkTotal = 12; int randomNpcCnt = GameRandom.GetRandomLevel(10, 45, 45) + 1; for (int j = 0; j < randomNpcCnt; ++j) { MonsterInfo monster = new MonsterInfo(); monster.ID = stageBaseID + i + j; int isBoxSkill = Random.Range(0, 10000); if (skillElement.Count > 0 && stageIdInt >= MAX_LEVEL * 0.1f && isBoxSkill < 3333) { int randomEleIdx = Random.Range(0, skillElement.Count); monster.Element = skillElement[randomEleIdx]; monster.ExSkill = GetRandomBoxSkill(stageIdInt, BattleField.ElementTypeToTrapType(monster.Element), monster.ID); } else { int randomEleIdx = Random.Range(0, skillElement.Count + monsterEle.Count); if (randomEleIdx > skillElement.Count - 1) { monster.Element = monsterEle[randomEleIdx - skillElement.Count]; } else { monster.Element = skillElement[randomEleIdx]; } } monster.AttackSkill = Random.Range(1, 10).ToString(); int atkMax = Mathf.Min(atkTotal, 10); monster.AttackRate = Random.Range(1, atkMax); atkTotal -= monster.AttackRate; atkTotal = Mathf.Max(1, atkTotal); monster.HpRate = Random.Range(1, 11); waveInfo.NPCs.Add(monster.ID); RandomMonsterList.Add(monster.ID, monster); } } return(stageLogic); }
public void Init() { currentStage = null; levelManager = new LevelManager(); levelManager.Init(); LevelManager.width = 40 * 0.6f; LevelManager.heigh = 30 * 0.6f; LevelManager.h1 = 10 * 0.6f; LevelManager.h2 = 2 * 0.6f; }
public void InitBattle(StageInfoRecord stageRecord, StageMapRecord stageMapRecord) { _StageRecord = stageRecord; _StageMapRecord = stageMapRecord; _BattleRound = 1; _StageLogic = stageMapRecord._MapStageLogic; InitRole(); _CurWave = -1; _CurOptRound = 0; StartNextWave(); _IsWinBattle = false; LogicManager.Instance.EnterFightFinish(); _AlreadyReviveTypes = new List <int>(); }
public void CreateStage() { GameObject obj = new GameObject(); obj.transform.parent = null; obj.name = "Stage"; Stage = obj.AddComponent <StageLogic> (); CreateLeft(xlenth, ylenth, 1); CreateRight(xlenth, ylenth, 1); CreateTop(xlenth, ylenth, 1); CreateBottom(xlenth, ylenth, 1); CreateBackGround(xlenth, ylenth, 1, GetBGSpriteName(), Stage.transform); Stage.dynamicRoot = CreateDynamicRoot(); Stage.staticRoot = CreateStaticRoot(); Stage.OpenAllDoor(); Stage.xLength = xlenth; Stage.yLength = ylenth; Stage.rato = rato; }
public static StageLogic RandomMonstersV2(string stageID, List <ELEMENT_TYPE> skillElement, List <ELEMENT_TYPE> monsterEle) { StageLogic stageLogic = new StageLogic(); stageLogic._Waves = new List <WaveInfo>(); int stageIdInt = int.Parse(stageID); string stageBaseID = (stageIdInt + 1000).ToString(); int monsterCnt = GameRandom.GetRandomLevel(2, 4, 10, 15, 37, 15, 10, 4, 3) + 1; if (stageIdInt == 1) { monsterCnt = 3; } else if (stageIdInt < 6) { monsterCnt = GameRandom.GetRandomLevel(0, 0, 30, 30, 40, 0, 0, 0, 0) + 1; } else if (stageIdInt < 20) { monsterCnt = GameRandom.GetRandomLevel(0, 5, 15, 20, 30, 15, 10, 5, 0) + 1; } List <int> waves = GetRandomIndependValue(monsterCnt, 3, 3, 1); for (int i = 0; i < waves.Count; ++i) { WaveInfo waveInfo = new WaveInfo(); stageLogic._Waves.Add(waveInfo); waveInfo.NPCs = new List <string>(); int atkTotal = 12; for (int j = 0; j < waves[i]; ++j) { MonsterInfo monster = new MonsterInfo(); monster.ID = stageBaseID + i + j; int isBoxSkill = Random.Range(0, 10000); if (skillElement.Count > 0 && stageIdInt >= MAX_LEVEL * 0.1f && isBoxSkill < 3333) { int randomEleIdx = Random.Range(0, skillElement.Count); monster.Element = skillElement[randomEleIdx]; monster.ExSkill = GetRandomBoxSkill(stageIdInt, BattleField.ElementTypeToTrapType(monster.Element), monster.ID); } else { int randomEleIdx = Random.Range(0, skillElement.Count + monsterEle.Count); if (randomEleIdx > skillElement.Count - 1) { monster.Element = monsterEle[randomEleIdx - skillElement.Count]; } else { monster.Element = skillElement[randomEleIdx]; } } monster.AttackSkill = ""; int atkMax = Mathf.Min(atkTotal, 9); if (stageIdInt <= 10) { atkMax = 5; monster.AttackSkill = Random.Range(4, 10).ToString(); } else if (stageIdInt <= 20) { atkMax = 7; monster.AttackSkill = Random.Range(2, 10).ToString(); } monster.AttackRate = Random.Range(1, atkMax); if (string.IsNullOrEmpty(monster.AttackSkill)) { if (monsterCnt > 5 && monster.AttackRate > 5) { monster.AttackSkill = Random.Range(5, 10).ToString(); } else if (monsterCnt > 5 && monster.AttackRate < 4) { monster.AttackSkill = Random.Range(2, 10).ToString(); } else if (monsterCnt < 5 && monster.AttackRate < 4) { monster.AttackSkill = Random.Range(1, 4).ToString(); } else if (monsterCnt < 5 && monster.AttackRate > 5) { monster.AttackSkill = Random.Range(2, 10).ToString(); } else if (monster.AttackRate < 4) { monster.AttackSkill = Random.Range(1, 7).ToString(); } else if (monster.AttackRate > 5) { monster.AttackSkill = Random.Range(4, 10).ToString(); } else { monster.AttackSkill = Random.Range(1, 10).ToString(); } } atkTotal -= monster.AttackRate; atkTotal = Mathf.Max(1, atkTotal); int minHPRate = 4; int maxHPRate = 10; if (monsterCnt == 4) { maxHPRate = 8; } if (monsterCnt == 5) { maxHPRate = 7; } if (monsterCnt == 6) { minHPRate = 2; maxHPRate = 6; } if (monsterCnt == 7) { minHPRate = 2; maxHPRate = 5; } if (monsterCnt == 8) { minHPRate = 2; maxHPRate = 5; } if (monsterCnt >= 9) { minHPRate = 1; maxHPRate = 4; } monster.HpRate = Random.Range(minHPRate, maxHPRate); waveInfo.NPCs.Add(monster.ID); RandomMonsterList.Add(monster.ID, monster); } } return(stageLogic); }
public void DeleteStage() { GameObject.DestroyImmediate(Stage.gameObject); Stage = null; }
public void EnterState(int stageId) { currentStage = stageList[stageId].stageEntity; currentStage.OnEnter(); }
public void UnLoad() { GameObject.Destroy(stageEntity.gameObject); stageEntity = null; }