public void Win(BombermanAgent agent) { agents.ForEach(a => { if (a == agent) { a.SetReward(1.0f); } else { a.SetReward(-1.0f / (agents.Count - 1)); } a.Done(); }); }
public void CollectPickup(GameObject pickup, BombermanAgent agent) { agent.hasBomb = true; pickup.transform.position = transform.position + RandomPosition; agents.ForEach(a => { if (a == agent) { agent.SetReward(1f); } else { a.SetReward(-1); } a.gameObject.SetActive(true); a.Done(); }); }
private void Update() { if (Time.time >= ExpireTime) { Collider[] colliders = Physics.OverlapSphere(transform.position, ExplosionRadius, AgentLayer); foreach (Collider coll in colliders) { BombermanAgent agent = coll.GetComponent <BombermanAgent>(); if (agent != Owner) { //Owner.SetReward(1f); } //agent.SetReward(-1f); agent.Done(); agent.gameObject.SetActive(false); } Destroy(gameObject); } }