FiE-Game/Assets/Photon Unity Networking/UtilityScripts/PunPlayerScores.cs

42 lines
1.3 KiB
C#
Raw Normal View History

2023-07-19 19:11:02 +02:00
using System.Collections.Generic;
using UnityEngine;
using System.Collections;
using Hashtable = ExitGames.Client.Photon.Hashtable;
public class PunPlayerScores : MonoBehaviour
{
public const string PlayerScoreProp = "score";
}
public static class ScoreExtensions
{
public static void SetScore(this PhotonPlayer player, int newScore)
{
Hashtable score = new Hashtable(); // using PUN's implementation of Hashtable
score[PunPlayerScores.PlayerScoreProp] = newScore;
player.SetCustomProperties(score); // this locally sets the score and will sync it in-game asap.
}
public static void AddScore(this PhotonPlayer player, int scoreToAddToCurrent)
{
int current = player.GetScore();
current = current + scoreToAddToCurrent;
Hashtable score = new Hashtable(); // using PUN's implementation of Hashtable
score[PunPlayerScores.PlayerScoreProp] = current;
player.SetCustomProperties(score); // this locally sets the score and will sync it in-game asap.
}
public static int GetScore(this PhotonPlayer player)
{
object score;
if (player.CustomProperties.TryGetValue(PunPlayerScores.PlayerScoreProp, out score))
{
return (int) score;
}
return 0;
}
}