예제 #1
0
    public IEnumerator CaptureLandmark_NeutralLandmarkPlayerBeerAmountCorrect()
    {
        Setup();

        // capturing landmark
        Sector landmarkedSector = map.sectors[1];

        landmarkedSector.Initialize();
        Landmark landmark = landmarkedSector.GetLandmark();
        Player   playerA  = game.players[0];

        // ensure 'landmarkedSector' is a landmark of type Beer
        Assert.IsNotNull(landmarkedSector.GetLandmark());
        landmark.SetResourceType(Landmark.ResourceType.Beer);

        // get player beer amount before capture
        int oldBeer = playerA.GetBeer();

        playerA.Capture(landmarkedSector);

        // ensure sector is captured correctly
        Assert.AreSame(landmarkedSector.GetOwner(), playerA);
        Assert.IsTrue(playerA.ownedSectors.Contains(landmarkedSector));

        // ensure resources are gained correctly
        Assert.IsTrue(playerA.GetBeer() - oldBeer == landmark.GetAmount());

        yield return(null);
    }
    public IEnumerator CaptureLandmark_BothPlayersKnowledgeAmountCorrect()
    {
        Setup();

        // capturing landmark
        Sector landmarkedSector = map.sectors[1];

        landmarkedSector.Initialize();
        Landmark landmark = landmarkedSector.GetLandmark();
        Player   playerA  = game.players[0];
        Player   playerB  = game.players[1];

        playerB.Capture(landmarkedSector);

        // ensure 'landmarkedSector' is a landmark of type Knowledge
        Assert.IsNotNull(landmarkedSector.GetLandmark());
        landmark.SetResourceType(Landmark.ResourceType.Defence);

        // get knowledge amounts for each player before capture
        int    attackerKnowledgeBeforeCapture = playerA.GetDefence();
        int    defenderKnowledgeBeforeCapture = playerB.GetDefence();
        Player previousOwner = landmarkedSector.GetOwner();

        playerA.Capture(landmarkedSector);

        // ensure sector is captured correctly
        Assert.AreSame(landmarkedSector.GetOwner(), playerA);
        Assert.IsTrue(playerA.ownedSectors.Contains(landmarkedSector));

        // ensure resources are transferred correctly
        Assert.IsTrue(attackerKnowledgeBeforeCapture + landmark.GetAmount() == playerA.GetDefence());
        Assert.IsTrue(defenderKnowledgeBeforeCapture - landmark.GetAmount() == previousOwner.GetDefence());

        yield return(null);
    }