Coverage Summary for Class: Card02 (it.polimi.ingsw.Model)
Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Card02 |
100%
(1/1)
|
100%
(4/4)
|
50%
(1/2)
|
100%
(8/8)
|
1 package it.polimi.ingsw.Model;
2
3 import it.polimi.ingsw.Exceptions.Input.InputValidationException;
4 import it.polimi.ingsw.Misc.OptionalValue;
5 import it.polimi.ingsw.Model.Enums.PawnColour;
6
7 import java.io.Serial;
8 import java.util.Map;
9
10 /**
11 * EFFECT: During this turn, you take control of any
12 * number of Professors even if you have the same
13 * number of Students as the player who currently controls them.
14 */
15 public class Card02 extends StatelessEffect {
16 @Serial
17 private static final long serialVersionUID = 104L; // convention: 1 for model, (01 -> 99) for objects
18
19 public Card02(Model ctx) {
20 super(2, 2, ctx);
21 }
22
23 /**
24 * Refer to: {@link CharacterCard#overridableCheckInput(CharacterCardInput)} for further information
25 *
26 * @param input No extra parameters required
27 */
28 @Override
29 public OptionalValue<InputValidationException> overridableCheckInput(CharacterCardInput input) {
30 return OptionalValue.empty();
31 }
32
33 /**
34 * Refer to: {@link CharacterCard#unsafeApplyEffect(CharacterCardInput)} for further information
35 */
36 @Override
37 protected void unsafeApplyEffect(CharacterCardInput input) {
38 Map<PawnColour, PlayerBoard> teachers = this.context.getTeachers();
39 PlayerBoard me = input.getCaller();
40
41 this.context.getMutableEffects().enableAlternativeTeacherAssignment();
42 teachers.forEach((teacherColour, teacherOwner) -> {
43 if (teacherOwner.getDiningRoomCount(teacherColour) == me.getDiningRoomCount(teacherColour))
44 this.context.setTeacher(teacherColour, me);
45 });
46 }
47
48 }