From 898d9af4209a3cb6ab02a67ecd6d2de3fbac3927 Mon Sep 17 00:00:00 2001
From: shangfengh <3495281661@qq.com>
Date: Sat, 27 May 2023 03:39:42 +0800
Subject: [PATCH] refactor: :lock: lock the treatSpeed
---
.../GameClass/GameObj/Character/Character.Skill.cs | 2 +-
.../GameObj/Character/Character.Student.cs | 13 +++++++++----
logic/GameClass/GameObj/Moveable.cs | 3 ++-
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/logic/GameClass/GameObj/Character/Character.Skill.cs b/logic/GameClass/GameObj/Character/Character.Skill.cs
index f2d887e..1f00ef3 100644
--- a/logic/GameClass/GameObj/Character/Character.Skill.cs
+++ b/logic/GameClass/GameObj/Character/Character.Skill.cs
@@ -36,7 +36,7 @@ namespace GameClass.GameObj
this.buffManager = new BuffManager();
this.occupation = OccupationFactory.FindIOccupation(characterType);
this.MaxHp = this.hp = Occupation.MaxHp;
- this.MoveSpeed = this.OrgMoveSpeed = Occupation.MoveSpeed;
+ this.MoveSpeed = this.orgMoveSpeed = Occupation.MoveSpeed;
this.BulletOfPlayer = this.OriBulletOfPlayer = Occupation.InitBullet;
this.concealment = Occupation.Concealment;
this.alertnessRadius = Occupation.AlertnessRadius;
diff --git a/logic/GameClass/GameObj/Character/Character.Student.cs b/logic/GameClass/GameObj/Character/Character.Student.cs
index d0a4902..a068eae 100644
--- a/logic/GameClass/GameObj/Character/Character.Student.cs
+++ b/logic/GameClass/GameObj/Character/Character.Student.cs
@@ -32,19 +32,24 @@ namespace GameClass.GameObj
///
protected readonly int orgFixSpeed;
+ private readonly object treatLock = new();
protected int treatSpeed = GameData.basicTreatSpeed;
public int TreatSpeed
{
- get => treatSpeed;
+ get
+ {
+ lock (treatLock)
+ return treatSpeed;
+ }
set
{
- lock (gameObjLock)
+ lock (treatLock)
{
treatSpeed = value;
}
}
}
- public int OrgTreatSpeed { get; protected set; }
+ protected readonly int orgTreatSpeed;
public int MaxGamingAddiction { get; protected set; }
private int gamingAddiction;
@@ -128,7 +133,7 @@ namespace GameClass.GameObj
public Student(XY initPos, int initRadius, CharacterType characterType) : base(initPos, initRadius, characterType)
{
this.orgFixSpeed = this.fixSpeed = ((IStudentType)Occupation).FixSpeed;
- this.TreatSpeed = this.OrgTreatSpeed = ((IStudentType)Occupation).TreatSpeed;
+ this.TreatSpeed = this.orgTreatSpeed = ((IStudentType)Occupation).TreatSpeed;
this.MaxGamingAddiction = ((IStudentType)Occupation).MaxGamingAddiction;
}
}
diff --git a/logic/GameClass/GameObj/Moveable.cs b/logic/GameClass/GameObj/Moveable.cs
index 9d3cd00..1652e9f 100644
--- a/logic/GameClass/GameObj/Moveable.cs
+++ b/logic/GameClass/GameObj/Moveable.cs
@@ -127,7 +127,8 @@ namespace GameClass.GameObj
///
/// 原初移动速度
///
- public int OrgMoveSpeed { get; protected set; }
+ protected int orgMoveSpeed;
+ public int OrgMoveSpeed => orgMoveSpeed;
/* ///
/// 复活时数据重置