Skip to content

Commit fb29f90

Browse files
committed
[BugFix] Call all agents' reward functions before calling observation
1 parent cd68651 commit fb29f90

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

vmas/simulator/environment/environment.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,22 +149,24 @@ def get_from_scenario(
149149
if get_infos:
150150
infos = {} if dict_agent_names else []
151151

152-
for agent in self.agents:
153-
if get_rewards:
152+
if get_rewards:
153+
for agent in self.agents:
154154
reward = self.scenario.reward(agent).clone()
155155
if dict_agent_names:
156156
rewards.update({agent.name: reward})
157157
else:
158158
rewards.append(reward)
159-
if get_observations:
159+
if get_observations:
160+
for agent in self.agents:
160161
observation = TorchUtils.recursive_clone(
161162
self.scenario.observation(agent)
162163
)
163164
if dict_agent_names:
164165
obs.update({agent.name: observation})
165166
else:
166167
obs.append(observation)
167-
if get_infos:
168+
if get_infos:
169+
for agent in self.agents:
168170
info = TorchUtils.recursive_clone(self.scenario.info(agent))
169171
if dict_agent_names:
170172
infos.update({agent.name: info})

0 commit comments

Comments
 (0)