хорошо, так как это то, что вам нужно, я опубликую это как ответ
лекарство имеет диаграмму состояний под названием SC с начальным состоянием, которое используется, и вторым состоянием, не использованным, что вы получаете через переход сообщенияот одного к другому.
когда пациент добирается до состояния больного, ему нужно будет найти лекарство, которое находится в состоянии, которое не может быть излечено, поэтому вы найдете его с помощью следующего кода:
Medicine med=findFirst(main.medicines,m->m.inState(m.notUsed));
if(med!=null){//meaning that there is at least one not used medicine
med.SC.fireEvent("use medicine");
send("get better",this);
}
Возможно, вам придется сделать то же самое, вероятно, когда вы создаете новое лекарство, вы используете тот же метод, чтобы найти парня в состоянии "больной". Я предполагаю, что вы вызываете эту функцию вагент пациента, но может отличаться в зависимости от того, когда вы его вызываете.