|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- using Preparation.Interface;
- using Preparation.Utility;
-
- namespace GameClass.GameObj
- {
- public class BecomeVampire : IActiveSkill // 化身吸血鬼
- {
- public int SkillCD => GameData.commonSkillCD * 4 / 3;
- public int DurationTime => GameData.commonSkillTime;
-
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
-
- public bool isBeingUsed = false;
- public bool IsBeingUsed
- {
- get => isBeingUsed; set => isBeingUsed = value;
- }
- }
- public class CanBeginToCharge : IActiveSkill
- {
- public int SkillCD => GameData.commonSkillCD / 5;
- public int DurationTime => GameData.commonSkillTime * 6 / 10;
-
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
-
- 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;
-
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
-
- 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;
-
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
-
- public bool isBeingUsed = false;
- public bool IsBeingUsed
- {
- get => isBeingUsed; set => isBeingUsed = value;
- }
- }
-
- public class JumpyBomb : IActiveSkill
- {
- public int SkillCD => GameData.commonSkillCD / 30 * 5;
- public int DurationTime => GameData.commonSkillTime / 2;
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
-
- public bool isBeingUsed = false;
- public bool IsBeingUsed
- {
- get => isBeingUsed; set => isBeingUsed = value;
- }
- }
-
- 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 class SuperFast : IActiveSkill // 3倍速
- {
- public int SkillCD => GameData.commonSkillCD;
- public int DurationTime => GameData.commonSkillTime * 4 / 10;
- private readonly object commonSkillLock = new object();
- public object ActiveSkillLock => commonSkillLock;
-
- 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
- {
- get => isBeingUsed; set => isBeingUsed = false;
- }
- }
-
- public static class SkillFactory
- {
- public static IActiveSkill FindIActiveSkill(ActiveSkillType activeSkillType)
- {
- switch (activeSkillType)
- {
- case ActiveSkillType.BecomeInvisible:
- return new BecomeInvisible();
- case ActiveSkillType.UseKnife:
- return new UseKnife();
- case ActiveSkillType.CanBeginToCharge:
- return new CanBeginToCharge();
- case ActiveSkillType.Punish:
- return new Punish();
- case ActiveSkillType.JumpyBomb:
- return new JumpyBomb();
- 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;
- case Punish:
- return ActiveSkillType.Punish;
- case JumpyBomb:
- return ActiveSkillType.JumpyBomb;
- default:
- return ActiveSkillType.Null;
- }
- }
- }
- }
|