Вам необходимо оба
- сохранить источник, из которого пришел агент;
- случайным образом определить, какое время задержки вам нужно, если они поступили из определенного источника .
Таким образом, ваш параметр агента должен называться sourceNumber
или аналогичным (не percentage
), который вы устанавливаете соответствующим образом при его создании (как вы сделали).
Тогда ваше время задержки примерно такое, как показано ниже (при условии, что разделение 90% / 10% относится только к агентам из источника 1, а другие источники имеют время задержки 50 для иллюстрации):
agent.sourceNumber == 1 ? (randomTrue(0.1) ? 5 : 10) : 50
Если вам нужно более сложное (например, более двух исходных альтернатив) или вы хотите, чтобы оно было более «разборчивым» с Java, если операторы и тому подобное, вы бы написали функцию, скажем, скажем, getDelayTime
, которая возвращает double
и включите вызов этой функции в выражение времени задержки.
NB : если вам нужны отдельные агенты источника 1, чтобы всегда имели время задержки 5 или 10 (если они go через эту задержку несколько раз), то йо вам нужно выполнить выборку при их создании (и сохранить время задержки, в которое они попадут, или показатель времени задержки, которое они получат, в агенте).