private void CalculateResult() { StopSize = Math.Abs(OpenLevel - StopLevel); RiskRewardRatio = Math.Abs(Target - StrategyEntryLevel) / StopSize; CloseLevel.IfExistsThen(x => { ResultInR = Option.Some(Math.Abs(x - OpenLevel) / StopSize); PointsProfit = Direction == TradeDirection.Long ? Option.Some(x - OpenLevel) : Option.Some(OpenLevel - x); }); MaximumAdverseExcursionPoints.IfExistsThen(x => { MaximumAdverseExcursionPercentageOfStop = Option.Some(x / StopSize); }); MaximumFavourableExcursionPoints.IfExistsThen(x => { PointsProfit.IfExistsThen(y => { if (y > 0) { PointsProfitPercentageOfMaximumFavourableExcursion = Option.Some(y / x); UnrealisedProfitPoints = Option.Some(x - y); } else { UnrealisedProfitPoints = Option.Some(x); } UnrealisedProfitPoints.IfExistsThen(z => { UnrealisedProfitCash = Option.Some(z * Size); }); }); }); PointsProfit.IfExistsThen(x => { CashProfit = Option.Some(Size * x); }); }
public void randomizeLevel() { TileCounter = 0; if (TileQuantity > MapDemensionsX * MapDemensionsY) { TileQuantity = MapDemensionsX * MapDemensionsY; } Shuffle(TilePallette); int x = Random.Range(0, MapDemensionsX), y = Random.Range(0, MapDemensionsY); recursiveTilePlacement(x, y); while (!FillMap && TileCounter < TileQuantity) { x = Random.Range(0, MapDemensionsX); y = Random.Range(0, MapDemensionsY); if (Map[y][x] != null) { recursiveTilePlacement(x - 1, y); recursiveTilePlacement(x + 1, y); recursiveTilePlacement(x, y - 1); recursiveTilePlacement(x, y + 1); } } //add level doors to the data structure so it's easier to check and see if players are //near them in game doorManager.SetDoors(PlacedTileList); //go through the placed tiles and see where all of the //player spawners are. int Spawners = 0; foreach (GameObject g in PlacedTileList) { Spawners += g.GetComponent <TileInformation>().PlayerSpawners.Length; } PlayerSpawners = new PlayerSpawner[Spawners]; //create a list of available player spawners Spawners = 0; foreach (GameObject g in PlacedTileList) { foreach (PlayerSpawner p in g.GetComponent <TileInformation>().PlayerSpawners) { PlayerSpawners[Spawners++] = p; } } //Shuffle them and place players in the first 4 //loop back around if there are less than 4 Shuffle(PlayerSpawners); Spawners = 0; foreach (Transform child in PlayerArray.transform) { child.position = PlayerSpawners[(Spawners++ % PlayerSpawners.Length)].gameObject.transform.position; } //go through the placed tiles and see where all of the //item spawners are. Spawners = 0; foreach (GameObject g in PlacedTileList) { Spawners += g.GetComponent <TileInformation>().ItemSpawners.Length; } ItemSpawners = new ItemSpawner[Spawners]; //create a list of available item spawners Spawners = 0; foreach (GameObject g in PlacedTileList) { foreach (ItemSpawner i in g.GetComponent <TileInformation>().ItemSpawners) { ItemSpawners[Spawners++] = i; } } //Shuffle them and place items in the first N Shuffle(ItemSpawners); Spawners = 0; PlacedItems = new GameObject[itemQuantity]; for (int i = 0; i < itemQuantity; ++i) { GameObject tmp = Instantiate(ItemPallette[Random.Range(0, ItemPallette.Length)]); tmp.transform.position = ItemSpawners[(Spawners % ItemSpawners.Length)].gameObject.transform.position; PlacedItems[Spawners] = tmp; Spawners++; //print("placed item at " + tmp.transform.position); } //setup the level shrinking object closer = new CloseLevel(Map, Any, CloseRoomXManyFrames, WarnForXManyFrames, LeaveRoomsOpen); }
public UnityLog(bool enable, CloseLevel level) { Enable = enable; CloseLevel = level; }