예제 #1
0
    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);
    }
예제 #2
0
    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);
        }
    }