public RaidResult Raid(uint inMinimumMaterialsLost, uint inMaximumMaterialsLost, uint inMinimumCharacterInjuries, uint inMaximumCharacterInjuries, uint inMinimumSurvivorDeaths, uint inMaximumSurvivorDeaths) { RaidResult result = new RaidResult(); int random; // materials random = Random.Range((int)inMinimumMaterialsLost, (int)inMaximumMaterialsLost + 1); for (uint i = 0; storageManager.ItemCount() != 0 && i < random; ++i) { Item lostItem = storageManager.DropRandomItem(); result.itemsLost.Add(lostItem); result.materialsLost += 1; } // injury random = Random.Range((int)inMinimumCharacterInjuries, (int)inMaximumCharacterInjuries + 1); for (uint i = 0; characterManager.GetCharacter().IsDead() == false && i < random; ++i) { injuryManager.InjureCharacter(); result.characterInjuries += 1; } // kill survivor random = Random.Range((int)inMinimumSurvivorDeaths, (int)inMaximumSurvivorDeaths + 1); for (uint i = 0; survivorsManager.GetNumberOfSurvivors() > 0 && i < random; ++i) { survivorsManager.KillRandom(); result.survivorsDied += 1; } return(result); }
void OnDefendButtonClicked() { GameState.State state = gameStateManager.GetState(); if (state != GameState.State.DEFENDING) { gameStateManager.ChangeState(GameState.State.DEFENDING); RaidResult result = Raid(minimumMaterialsLost, maximumMaterialsLost, minimumCharacterInjuries, maximumCharacterInjuries, minimumSurvivorsDieing, maximumSurvivorsDieing); result.PrintResult(); gameStateManager.ChangeState(GameState.State.END_OF_DAY); } }