internal void SpawnPrepareUnit(TileUnitData tileUnitData) { GameTile validTile = board.GetPrepareTile(); if (validTile != null) { SpawnMonster(validTile, 0, tileUnitData); } }
public ActionUnit SpawnMonster(GameTile tile, int group, TileUnitData typeUnit) { ActionUnit monster = actionUnitFactory.Get(); monster.tileUnitData = typeUnit; monster.SpawnOn(tile); monster.UnitID = ++ActionUnit.TotalUnit; monster.Group = group; monster.SpawnCharacter(); monster.transform.localRotation = Quaternion.Euler(0, group == 1 ? 180f : 0, 0); ActionUnitManger.Add(monster); if (!tile.PrepareTile) { FormationManager.Instance.ApplyFormation(); } return(monster); }
private void SpawnEnemyMirror(Round r) { GameTile spawnTile = null; int group = 1; List <ActionUnit> units = ActionUnitManger.Instance.GetAll().Where(x => !x.TilePos.PrepareTile).ToList(); int maxLevel = -1; int existsMaxLevel = 1; maxLevel = 1 + (Game.Instance.RoundManager.Round.Level <= 10 ? 0 : +Mathf.CeilToInt((Game.Instance.RoundManager.Round.Level - 10f) / 10f)); TileUnitData dataSpawn = null; int spawnCount = Game.Instance.Profile.GameModeCtrl.GetMaxSpawn(); foreach (ActionUnit unit in units) { spawnTile = Game.Instance.board.GetRandomEmptyTileGroup(group); if (spawnTile != null) { dataSpawn = unit.tileUnitData; int level = ((ActionUnitData)unit.tileUnitData).Level; if (maxLevel != -1 && level > maxLevel) { existsMaxLevel = units.Select(x => x.tileUnitData).Where(x => ((ActionUnitData)x).Level <= maxLevel).OrderByDescending(x => ((ActionUnitData)x).Level).Select(x => ((ActionUnitData)x).Level).FirstOrDefault(); dataSpawn = Game.Instance.RandomFromList(units.Select(x => x.tileUnitData).Cast <ActionUnitData>().ToList(), existsMaxLevel); } Game.Instance.SpawnMonster(spawnTile, group, dataSpawn); spawnCount--; } } if (spawnCount > 0) { for (int i = spawnCount; i > 0; i--) { spawnTile = Game.Instance.board.GetRandomEmptyTileGroup(group); if (spawnTile != null) { dataSpawn = Game.Instance.RandomFromList(units.Select(x => x.tileUnitData).Cast <ActionUnitData>().ToList()); Game.Instance.SpawnMonster(spawnTile, group, dataSpawn); } } } MainMenuControl.Instance.ScanAndShow(true); }
private void UpdatePickupUnit() { if (PickupUnit != null && (InputUtils.LeftMousePress() || (InputUtils.Mouse1Press() && !InputUtils.LeftShiftPress()) ) ) { PickupUnit = null; if (PickupModel != null) { Destroy(PickupModel); } } if (PickupUnit != null) { ShowUnitPickup(); } }