Browse Source

perf: 🔒 add the addictionLock

dev
shangfengh 2 years ago
parent
commit
ab65b563a5
1 changed files with 26 additions and 5 deletions
  1. +26
    -5
      logic/GameClass/GameObj/Character/Character.Student.cs

+ 26
- 5
logic/GameClass/GameObj/Character/Character.Student.cs View File

@@ -51,18 +51,39 @@ namespace GameClass.GameObj
}
protected readonly int orgTreatSpeed;

public int MaxGamingAddiction { get; protected set; }
private readonly object addictionLock = new();
private int maxGamingAddiction;
public int MaxGamingAddiction
{
get
{
lock (addictionLock)
return maxGamingAddiction;
}
protected set
{
lock (addictionLock)
{
if (value < gamingAddiction) gamingAddiction = value;
maxGamingAddiction = value;
}
}
}
private int gamingAddiction;
public int GamingAddiction
{
get => gamingAddiction;
get
{
lock (addictionLock)
return gamingAddiction;
}
set
{
if (value > 0)
lock (gameObjLock)
gamingAddiction = value <= MaxGamingAddiction ? value : MaxGamingAddiction;
lock (addictionLock)
gamingAddiction = value <= maxGamingAddiction ? value : maxGamingAddiction;
else
lock (gameObjLock)
lock (addictionLock)
gamingAddiction = 0;
}
}


Loading…
Cancel
Save