// Update is called once per frame void Update() { if (greenPlayerScript.playerPos == redPlayerScript.playerPos) { ChangeBothPos(); if (greenPlayerScript.hasBall) { greenPlayerScript.AddReward(-0.5f); } else { greenPlayerScript.AddReward(-0.5f); } if (redPlayerScript.hasBall) { redPlayerScript.AddReward(-0.5f); } else { redPlayerScript.AddReward(-0.5f); } ChangeBallOwner(); } /* if (TheyCollideInTheSameBlock()) * { * if(hasBall) {AddReward(-0.5f);} else {AddReward(0.5f);} * SetNewPosition(PlayerDirection.Left); * localBoardManager.ChangeBallOwner(); * } */ }
public void OneDied(GameObject diedplayer) { Debug.Log(remainedPlayers); PlayerAgent player = diedplayer.GetComponent <PlayerAgent>(); switch (remainedPlayers) { case 2: player.AddReward(-0.5f); break; case 3: player.AddReward(-1f); break; case 4: player.AddReward(-1.5f); break; case 5: player.AddReward(-2f); break; } remainedPlayers--; if (remainedPlayers == 1) { gameFinish(); } }
public void KilledPlayer() { kills += 1; if (isAgent) { pa.AddReward(1f); } gameController.UpdateScore(playerNum); }
public void HealthUp() { if (health < 3) { healthDisplay.AddHealth(); health++; agent.AddReward(0.1f); healthSound.Play(); } }
private void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Water") && playerState != PlayerState.Exhaust) { playerState = PlayerState.Dive; if (playerAgent) { playerAgent.AddReward(-0.1f); } } }
void OnCollisionEnter(Collision collision) { if (!hasHit) { if (collision.gameObject.CompareTag("Body")) { Player playerData = collision.gameObject.GetComponentInParent <Player>(); playerData.health -= 10; //Debug.Log("Body hit! " + playerData.ToString()); DestroyProyectile(); } else if (collision.gameObject.CompareTag("Arm")) { Player playerData = collision.gameObject.GetComponentInParent <Player>(); playerData.health -= 5; //Debug.Log("Arm hit! " + playerData.ToString()); DestroyProyectile(); } else if (collision.gameObject.CompareTag("Player")) { Player playerData = collision.gameObject.GetComponent <Player>(); playerData.health -= 50; if (fireFrom) { PlayerAgent fireTo = collision.gameObject.GetComponent <PlayerAgent>(); fireTo.AddReward(-1f); fireFrom.AddReward(1f); /*if (playerData.health <= 0) * { * fireFrom.AddReward(1f); * }*/ } //Debug.Log("Player hit! " + playerData.ToString()); DestroyProyectile(); } else if (collision.gameObject.CompareTag("Wall") || collision.gameObject.CompareTag("AreaWall")) { if (fireFrom) { fireFrom.AddReward(-0.5f); } DestroyProyectile(); } else if (collision.gameObject.CompareTag("Ground")) { DestroyProyectile(); } } //else if (collision.gameObject.tag == "Finish") //{ //This is to detect if the proyectile collides with the world, i used this tag because it is standard in Unity (To prevent asset importing issues) // DestroyProyectile(); //} }
private void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag("goal")) { if (collision.gameObject.name == "Goal1") { if (lastAgentHit == 0) { agentA.AddReward(-0.01f); agentB.SetReward(0); agentB.score += 1; Debug.Log("Score Incremented"); } else { agentA.SetReward(0); agentB.AddReward(-0.01f); agentA.score += 1; Debug.Log("Score Incremented"); } } else if (collision.gameObject.name == "Goal2") { if (lastAgentHit == 0) { agentA.AddReward(-0.01f); agentB.SetReward(0); agentB.score += 1; Debug.Log("Score Incremented"); } else { agentA.SetReward(0); agentB.AddReward(-0.01f); agentA.score += 1; Debug.Log("Score Incremented"); } } agentA.Done(); agentB.Done(); region.MatchReset(); Debug.Log(agentA.score); } if (collision.gameObject.CompareTag("Player")) { lastAgentHit = collision.gameObject.name == "Player1" ? 0 : 1; } }
public void AddScore(int newScoreValue) { score += newScoreValue; // Added: Set reward for player agent playerAgent.AddReward(newScoreValue); UpdateScore(); }
private void ProcessHit(DamageDealer damageDealer) { if (damageDealer.CompareTag("Enemy")) { return; } if (damageDealer.CompareTag("EnemyShot")) { return; } meshRenderer.material = flashMaterial; gameController.AddToScore(scoreValue); health -= damageDealer.GetDamage(); agent.AddReward(0.01f); damageDealer.Hit(); if (health <= 0) { Die(); } else { Invoke("ResetMaterial", .1f); } }
public void DistanceReward(Arena arena) { PlayerAgent first = arena.Players[0].PlayerAgent; PlayerAgent second = arena.Players[1].PlayerAgent; float distance = Vector3.Distance(first.transform.position, second.transform.position); if (distance < 3.5f) { first.AddReward(-InRangeReward * 2f); second.AddReward(-InRangeReward * 2f); } else if (distance < 5.5f) { first.AddReward(InRangeReward); second.AddReward(InRangeReward); } else { first.AddReward(-InRangeReward); second.AddReward(-InRangeReward); } }
private void OnTriggerEnter2D(Collider2D col) { var hit = col.gameObject; if (hit.tag == "tree") { Destroy(gameObject); return; } if (hit.tag == "player") { PlayerAgent health = hit.GetComponent <PlayerAgent>(); health.TakeDamage(7); Destroy(gameObject); shooter.AddReward(10); } return; }
public void AddRewardUpdate(PlayerAgent player) { player.AddReward(UpdateReward); }
// Update is called once per frame void FixedUpdate() { if (reloading && Time.time > lastReloadTime + reloadTime[(int)currentWeapon]) { ammo = maxAmmo[(int)currentWeapon]; reloading = false; } if (health <= 0) { battleArea.addAliveTimeStat(gameObject.name, aliveTime); if (battleArea.kdStatText) { if (gameObject.name.StartsWith("MLAgent")) { battleArea.kdStatText.GetComponent <StatsCounter>().addMLSurviveTime(aliveTime); } else if (gameObject.name.StartsWith("MLDisAgent")) { battleArea.kdStatText.GetComponent <StatsCounter>().addMLDisSurviveTime(aliveTime); } else if (gameObject.name.StartsWith("RBSAgent")) { battleArea.kdStatText.GetComponent <StatsCounter>().addRBSSurviveTime(aliveTime); } else if (gameObject.name.StartsWith("Human")) { battleArea.kdStatText.GetComponent <StatsCounter>().addHumanSurviveTime(aliveTime); } } if (agent.brain) { agent.AddReward(-1f); agent.Done(); //gameObject.SetActive(false); } else { if (destroyOnDied) { battleArea.players.Remove(gameObject); Destroy(statusBar); Destroy(gameObject); } } } else { aliveTime += Time.deltaTime; } if (statusBar) { //uiText.GetComponent<Text>().text = "Health: " + health + "\nAmmo: " + ((reloading) ? "RE.." : ammo.ToString()) + "\n" + agent.GetReward().ToString("0.000"); statusBar.GetComponent <StatusBar>().updateBar(health, ammo, maxAmmo[(int)currentWeapon], reloading); // Offset position above object bbox (in world space) float offsetPosX = transform.position.x + 0.75f; // Final position of marker above GO in world space Vector3 offsetPos = new Vector3(offsetPosX, transform.position.y, transform.position.z); // Calculate *screen* position (note, not a canvas/recttransform position) Vector2 canvasPos; Vector2 screenPoint = Camera.main.WorldToScreenPoint(offsetPos); // Convert screen position to Canvas / RectTransform space <- leave camera null if Screen Space Overlay RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out canvasPos); // Set statusBar.transform.localPosition = canvasPos; } }