Skip to content

Commit

Permalink
fix(Reward): Simplified and better comments
Browse files Browse the repository at this point in the history
  • Loading branch information
MrGadget1024 committed Oct 14, 2024
1 parent 1f9faf2 commit 2b2e413
Showing 1 changed file with 18 additions and 23 deletions.
41 changes: 18 additions & 23 deletions Assets/Mirror/Examples/Room/Scripts/Reward.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,34 +24,29 @@ protected override void OnValidate()
[ServerCallback]
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Player"))
ClaimPrize(other.gameObject);
}

[ServerCallback]
void ClaimPrize(GameObject player)
{
if (available)
{
// This is a fast switch to prevent two players claiming the prize in a bang-bang close contest for it.
// First hit turns it off, pending the object being destroyed a few frames later.
// Set up physics layers to prevent this from being called by non-players
// and eliminate the need for a tag check here.
if (!other.CompareTag("Player")) return;

// This is a fast switch to prevent two players claiming the prize in a bang-bang close contest for it.
// First to trigger turns it off, pending the object being destroyed a few frames later.
if (!available)
return;
else
available = false;

Color32 color = randomColor.color;

// calculate the points from the color ... lighter scores higher as the average approaches 255
// UnityEngine.Color RGB values are float fractions of 255
uint points = (uint)(((color.r) + (color.g) + (color.b)) / 3);
// Calculate the points from the color...lighter scores higher as the average approaches 255
// UnityEngine.Color RGB values are byte 0 to 255
uint points = (uint)((randomColor.color.r + randomColor.color.g + randomColor.color.b) / 3);

// award the points via SyncVar on the PlayerController
player.GetComponent<PlayerScore>().score += points;
// award the points via SyncVar on Player's PlayerScore
other.GetComponent<PlayerScore>().score += points;

// spawn a replacement
Spawner.SpawnReward();
// spawn a replacement
Spawner.SpawnReward();

// destroy this one
NetworkServer.Destroy(gameObject);
}
// destroy this one
NetworkServer.Destroy(gameObject);
}
}
}

0 comments on commit 2b2e413

Please sign in to comment.