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; /* /// /// 复活时数据重置