|
|
|
@@ -16,286 +16,286 @@ namespace Preparation.Interface |
|
|
|
public object ActiveSkillLock { get; } |
|
|
|
public bool IsBeingUsed { get; set; } |
|
|
|
} |
|
|
|
} |
|
|
|
public class CanBeginToCharge : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 24 / 30; |
|
|
|
public int DurationTime => GameData.commonSkillTime * 5 / 10; |
|
|
|
public class CanBeginToCharge : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 24 / 30; |
|
|
|
public int DurationTime => GameData.commonSkillTime * 5 / 10; |
|
|
|
|
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class BecomeInvisible : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => GameData.commonSkillTime * 6 / 10; |
|
|
|
public class BecomeInvisible : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => GameData.commonSkillTime * 6 / 10; |
|
|
|
|
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class Punish : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => 0; |
|
|
|
public class Punish : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => 0; |
|
|
|
|
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class Rouse : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 2; |
|
|
|
public int DurationTime => 0; |
|
|
|
public class Rouse : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 2; |
|
|
|
public int DurationTime => 0; |
|
|
|
|
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class Encourage : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 2; |
|
|
|
public int DurationTime => 0; |
|
|
|
public class Encourage : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 2; |
|
|
|
public int DurationTime => 0; |
|
|
|
|
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class Inspire : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 2; |
|
|
|
public int DurationTime => 0; |
|
|
|
public class Inspire : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 2; |
|
|
|
public int DurationTime => 0; |
|
|
|
|
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class Howl : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 3 / 4; |
|
|
|
public int DurationTime => 0; |
|
|
|
public class Howl : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 3 / 4; |
|
|
|
public int DurationTime => 0; |
|
|
|
|
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class JumpyBomb : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD / 2; |
|
|
|
public int DurationTime => GameData.commonSkillTime * 3 / 10; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
public class JumpyBomb : IActiveSkill |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
public int SkillCD => GameData.commonSkillCD / 2; |
|
|
|
public int DurationTime => GameData.commonSkillTime * 3 / 10; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public class UseKnife : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD * 2 / 3; |
|
|
|
public int DurationTime => GameData.commonSkillTime / 10; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
public class UseKnife : IActiveSkill |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
public int SkillCD => GameData.commonSkillCD * 2 / 3; |
|
|
|
public int DurationTime => GameData.commonSkillTime / 10; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public class UseRobot : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.frameDuration; |
|
|
|
public int DurationTime => 0; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
public class UseRobot : IActiveSkill |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
public int SkillCD => GameData.frameDuration; |
|
|
|
public int DurationTime => 0; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public class WriteAnswers : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => 0; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private int degreeOfMeditation = 0; |
|
|
|
public int DegreeOfMeditation |
|
|
|
public class WriteAnswers : IActiveSkill |
|
|
|
{ |
|
|
|
get => degreeOfMeditation; |
|
|
|
set |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => 0; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
private int degreeOfMeditation = 0; |
|
|
|
public int DegreeOfMeditation |
|
|
|
{ |
|
|
|
lock (commonSkillLock) |
|
|
|
get => degreeOfMeditation; |
|
|
|
set |
|
|
|
{ |
|
|
|
degreeOfMeditation = value; |
|
|
|
lock (commonSkillLock) |
|
|
|
{ |
|
|
|
degreeOfMeditation = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class SummonGolem : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => 0; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
private IGolem? golemSummoned = null; |
|
|
|
public IGolem? GolemSummoned |
|
|
|
public class SummonGolem : IActiveSkill |
|
|
|
{ |
|
|
|
get => golemSummoned; |
|
|
|
set |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => 0; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
private IGolem? golemSummoned = null; |
|
|
|
public IGolem? GolemSummoned |
|
|
|
{ |
|
|
|
lock (commonSkillLock) |
|
|
|
get => golemSummoned; |
|
|
|
set |
|
|
|
{ |
|
|
|
golemSummoned = value; |
|
|
|
lock (commonSkillLock) |
|
|
|
{ |
|
|
|
golemSummoned = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class NullSkill : IActiveSkill |
|
|
|
{ |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => GameData.commonSkillTime; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
public class NullSkill : IActiveSkill |
|
|
|
{ |
|
|
|
get => isBeingUsed; set => isBeingUsed = false; |
|
|
|
} |
|
|
|
} |
|
|
|
public int SkillCD => GameData.commonSkillCD; |
|
|
|
public int DurationTime => GameData.commonSkillTime; |
|
|
|
private readonly object commonSkillLock = new object(); |
|
|
|
public object ActiveSkillLock => commonSkillLock; |
|
|
|
|
|
|
|
public static class SkillFactory |
|
|
|
{ |
|
|
|
public static IActiveSkill FindIActiveSkill(ActiveSkillType activeSkillType) |
|
|
|
{ |
|
|
|
switch (activeSkillType) |
|
|
|
public bool isBeingUsed = false; |
|
|
|
public bool IsBeingUsed |
|
|
|
{ |
|
|
|
case ActiveSkillType.BecomeInvisible: |
|
|
|
return new BecomeInvisible(); |
|
|
|
case ActiveSkillType.UseKnife: |
|
|
|
return new UseKnife(); |
|
|
|
case ActiveSkillType.Howl: |
|
|
|
return new Howl(); |
|
|
|
case ActiveSkillType.Encourage: |
|
|
|
return new Encourage(); |
|
|
|
case ActiveSkillType.CanBeginToCharge: |
|
|
|
return new CanBeginToCharge(); |
|
|
|
case ActiveSkillType.Punish: |
|
|
|
return new Punish(); |
|
|
|
case ActiveSkillType.JumpyBomb: |
|
|
|
return new JumpyBomb(); |
|
|
|
case ActiveSkillType.WriteAnswers: |
|
|
|
return new WriteAnswers(); |
|
|
|
case ActiveSkillType.SummonGolem: |
|
|
|
return new SummonGolem(); |
|
|
|
case ActiveSkillType.UseRobot: |
|
|
|
return new UseRobot(); |
|
|
|
case ActiveSkillType.Rouse: |
|
|
|
return new Rouse(); |
|
|
|
case ActiveSkillType.Inspire: |
|
|
|
return new Inspire(); |
|
|
|
default: |
|
|
|
return new NullSkill(); |
|
|
|
get => isBeingUsed; set => isBeingUsed = false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public static ActiveSkillType FindActiveSkillType(IActiveSkill ActiveSkill) |
|
|
|
public static class SkillFactory |
|
|
|
{ |
|
|
|
switch (ActiveSkill) |
|
|
|
public static IActiveSkill FindIActiveSkill(ActiveSkillType activeSkillType) |
|
|
|
{ |
|
|
|
case BecomeInvisible: |
|
|
|
return ActiveSkillType.BecomeInvisible; |
|
|
|
case Howl: |
|
|
|
return ActiveSkillType.Howl; |
|
|
|
case UseKnife: |
|
|
|
return ActiveSkillType.UseKnife; |
|
|
|
case Encourage: |
|
|
|
return ActiveSkillType.Encourage; |
|
|
|
case CanBeginToCharge: |
|
|
|
return ActiveSkillType.CanBeginToCharge; |
|
|
|
case Inspire: |
|
|
|
return ActiveSkillType.Inspire; |
|
|
|
case Punish: |
|
|
|
return ActiveSkillType.Punish; |
|
|
|
case JumpyBomb: |
|
|
|
return ActiveSkillType.JumpyBomb; |
|
|
|
case WriteAnswers: |
|
|
|
return ActiveSkillType.WriteAnswers; |
|
|
|
case SummonGolem: |
|
|
|
return ActiveSkillType.SummonGolem; |
|
|
|
case UseRobot: |
|
|
|
return ActiveSkillType.UseRobot; |
|
|
|
case Rouse: |
|
|
|
return ActiveSkillType.Rouse; |
|
|
|
default: |
|
|
|
return ActiveSkillType.Null; |
|
|
|
switch (activeSkillType) |
|
|
|
{ |
|
|
|
case ActiveSkillType.BecomeInvisible: |
|
|
|
return new BecomeInvisible(); |
|
|
|
case ActiveSkillType.UseKnife: |
|
|
|
return new UseKnife(); |
|
|
|
case ActiveSkillType.Howl: |
|
|
|
return new Howl(); |
|
|
|
case ActiveSkillType.Encourage: |
|
|
|
return new Encourage(); |
|
|
|
case ActiveSkillType.CanBeginToCharge: |
|
|
|
return new CanBeginToCharge(); |
|
|
|
case ActiveSkillType.Punish: |
|
|
|
return new Punish(); |
|
|
|
case ActiveSkillType.JumpyBomb: |
|
|
|
return new JumpyBomb(); |
|
|
|
case ActiveSkillType.WriteAnswers: |
|
|
|
return new WriteAnswers(); |
|
|
|
case ActiveSkillType.SummonGolem: |
|
|
|
return new SummonGolem(); |
|
|
|
case ActiveSkillType.UseRobot: |
|
|
|
return new UseRobot(); |
|
|
|
case ActiveSkillType.Rouse: |
|
|
|
return new Rouse(); |
|
|
|
case ActiveSkillType.Inspire: |
|
|
|
return new Inspire(); |
|
|
|
default: |
|
|
|
return new NullSkill(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public static ActiveSkillType FindActiveSkillType(IActiveSkill ActiveSkill) |
|
|
|
{ |
|
|
|
switch (ActiveSkill) |
|
|
|
{ |
|
|
|
case BecomeInvisible: |
|
|
|
return ActiveSkillType.BecomeInvisible; |
|
|
|
case Howl: |
|
|
|
return ActiveSkillType.Howl; |
|
|
|
case UseKnife: |
|
|
|
return ActiveSkillType.UseKnife; |
|
|
|
case Encourage: |
|
|
|
return ActiveSkillType.Encourage; |
|
|
|
case CanBeginToCharge: |
|
|
|
return ActiveSkillType.CanBeginToCharge; |
|
|
|
case Inspire: |
|
|
|
return ActiveSkillType.Inspire; |
|
|
|
case Punish: |
|
|
|
return ActiveSkillType.Punish; |
|
|
|
case JumpyBomb: |
|
|
|
return ActiveSkillType.JumpyBomb; |
|
|
|
case WriteAnswers: |
|
|
|
return ActiveSkillType.WriteAnswers; |
|
|
|
case SummonGolem: |
|
|
|
return ActiveSkillType.SummonGolem; |
|
|
|
case UseRobot: |
|
|
|
return ActiveSkillType.UseRobot; |
|
|
|
case Rouse: |
|
|
|
return ActiveSkillType.Rouse; |
|
|
|
default: |
|
|
|
return ActiveSkillType.Null; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |