|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using Preparation.Interface;
- using Preparation.Utility;
-
- namespace GameClass.GameObj
- {
- public class BecomeVampire : IActiveSkill // 化身吸血鬼
- {
- public int SkillCD => GameData.commonSkillCD / 3 * 4;
- public int DurationTime => GameData.commonSkillTime;
-
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
- }
- public class CanBeginToCharge : IActiveSkill
- {
- public int SkillCD => GameData.commonSkillCD / 5;
- public int DurationTime => GameData.commonSkillTime / 10 * 6;
-
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
- }
-
- public class BecomeInvisible : IActiveSkill
- {
- public int SkillCD => GameData.commonSkillCD;
- public int DurationTime => GameData.commonSkillTime / 10 * 6;
-
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
- }
-
- public class NuclearWeapon : IActiveSkill // 核武器
- {
- public int SkillCD => GameData.commonSkillCD / 3 * 7;
- public int DurationTime => GameData.commonSkillTime / 10;
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
- }
-
- public class UseKnife : IActiveSkill
- {
- public int SkillCD => GameData.commonSkillCD / 3 * 2;
- public int DurationTime => GameData.commonSkillTime / 10;
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
- }
-
- public class SuperFast : IActiveSkill // 3倍速
- {
- public int SkillCD => GameData.commonSkillCD;
- public int DurationTime => GameData.commonSkillTime / 10 * 4;
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
- }
-
- 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 static class SkillFactory
- {
- public static IActiveSkill FindIActiveSkill(ActiveSkillType activeSkillType)
- {
- switch (activeSkillType)
- {
- case ActiveSkillType.BecomeInvisible:
- return new BecomeInvisible();
- case ActiveSkillType.UseKnife:
- return new UseKnife();
- default:
- return new NullSkill();
- }
- }
-
- public static ActiveSkillType FindActiveSkillType(IActiveSkill ActiveSkill)
- {
- switch (ActiveSkill)
- {
- case BecomeInvisible:
- return ActiveSkillType.BecomeInvisible;
- case UseKnife:
- return ActiveSkillType.UseKnife;
- case CanBeginToCharge:
- return ActiveSkillType.CanBeginToCharge;
- default:
- return ActiveSkillType.Null;
- }
- }
- }
- }
|