Browse Source

style: 🐛 use NullSkill to avoid warning

tags/0.1.0
shangfengh 2 years ago
parent
commit
5c5cff64a6
5 changed files with 35 additions and 43 deletions
  1. +14
    -14
      logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs
  2. +4
    -7
      logic/GameClass/GameObj/Character/Character.Skill.cs
  3. +9
    -13
      logic/GameClass/GameObj/Character/Skill.cs
  4. +8
    -8
      logic/Preparation/Interface/IOccupation.cs
  5. +0
    -1
      logic/Preparation/Interface/ISkill.cs

+ 14
- 14
logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs View File

@@ -42,14 +42,14 @@ namespace GameClass.GameObj
}
public override double BulletBombRange => 0;
public override double BulletAttackRange => GameData.basicRemoteAttackRange * 13;
public override int AP => GameData.basicApOfGhost / 5 * 4;
public override int AP => GameData.basicApOfGhost * 4 / 5;
public override int Speed => GameData.basicBulletMoveSpeed * 2;
public override bool IsToBomb => false;

public override int CastTime => GameData.basicCastTime;
public override int Backswing => GameData.basicBackswing / 5 * 2;
public override int RecoveryFromHit => GameData.basicBackswing / 4 * 3;
public const int cd = GameData.basicBackswing / 5 * 2 + 100;
public override int Backswing => GameData.basicBackswing * 2 / 5;
public override int RecoveryFromHit => GameData.basicBackswing * 3 / 4;
public const int cd = GameData.basicBackswing * 2 / 5 + 100;
public override int CD => cd;

public override bool CanAttack(GameObj target)
@@ -72,10 +72,10 @@ namespace GameClass.GameObj
base(player, radius, placeType, pos)
{
}
public override double BulletBombRange => GameData.basicBulletBombRange / 3 * 7;
public override double BulletAttackRange => GameData.basicAttackShortRange / 9 * 7;
public override int AP => GameData.basicApOfGhost / 3 * 7;
public override int Speed => GameData.basicBulletMoveSpeed / 3 * 2;
public override double BulletBombRange => GameData.basicBulletBombRange * 7 / 3;
public override double BulletAttackRange => GameData.basicAttackShortRange * 7 / 9;
public override int AP => GameData.basicApOfGhost * 7 / 3;
public override int Speed => GameData.basicBulletMoveSpeed * 2 / 3;

public override int CastTime => GameData.basicCastTime;
public override int Backswing => GameData.basicBackswing;
@@ -105,10 +105,10 @@ namespace GameClass.GameObj
base(player, radius, placeType, pos)
{
}
public override double BulletBombRange => GameData.basicBulletBombRange / 6 * 5;
public override double BulletBombRange => GameData.basicBulletBombRange * 5 / 6;
public override double BulletAttackRange => GameData.basicAttackShortRange / 2;
public override int AP => GameData.basicApOfGhost / 6 * 5;
public override int Speed => GameData.basicBulletMoveSpeed / 6 * 5;
public override int AP => GameData.basicApOfGhost * 5 / 6;
public override int Speed => GameData.basicBulletMoveSpeed * 5 / 6;

public override int CastTime => GameData.basicCastTime;
public override int Backswing => GameData.basicBackswing;
@@ -137,7 +137,7 @@ namespace GameClass.GameObj
base(player, radius, placeType, pos)
{
}
public override double BulletBombRange => GameData.basicBulletBombRange / 4 * 2;
public override double BulletBombRange => GameData.basicBulletBombRange * 2 / 4;
public override double BulletAttackRange => GameData.basicAttackShortRange;
public override int AP => (int)(0.5 * GameData.basicApOfGhost);
public override int Speed => 5 * GameData.basicBulletMoveSpeed / 3;
@@ -168,9 +168,9 @@ namespace GameClass.GameObj
base(player, radius, placeType, pos)
{
}
public override double BulletBombRange => GameData.basicBulletBombRange / 3 * 4;
public override double BulletBombRange => GameData.basicBulletBombRange * 4 / 3;
public override double BulletAttackRange => 0.1 * GameData.basicAttackShortRange;
public override int AP => GameData.basicApOfGhost / 3 * 2;
public override int AP => GameData.basicApOfGhost * 2 / 3;
public override int Speed => GameData.basicBulletMoveSpeed / 3;
public override int CastTime => GameData.basicCastTime;
public override int Backswing => GameData.basicBackswing;


+ 4
- 7
logic/GameClass/GameObj/Character/Character.Skill.cs View File

@@ -9,23 +9,22 @@ namespace GameClass.GameObj
{
private readonly CharacterType characterType;
public CharacterType CharacterType => characterType;
private readonly IOccupation? occupation;
private readonly IOccupation occupation;
public IOccupation Occupation => occupation;


private Dictionary<ActiveSkillType, int> timeUntilActiveSkillAvailable = new();
public Dictionary<ActiveSkillType, int> TimeUntilActiveSkillAvailable => timeUntilActiveSkillAvailable;

private Dictionary<ActiveSkillType, IActiveSkill> iActiveSkillDictionary = new();
public Dictionary<ActiveSkillType, IActiveSkill> IActiveSkillDictionary => iActiveSkillDictionary;

public IActiveSkill? UseIActiveSkill(ActiveSkillType activeSkillType)
public IActiveSkill UseIActiveSkill(ActiveSkillType activeSkillType)
{
if (Occupation.ListOfIActiveSkill.Contains(activeSkillType))
{
return IActiveSkillDictionary[activeSkillType];
}
return null;
return new NullSkill();
}

public bool SetTimeUntilActiveSkillAvailable(ActiveSkillType activeSkillType, int timeUntilActiveSkillAvailable)
@@ -67,10 +66,8 @@ namespace GameClass.GameObj
this.occupation = new Assassin();
break;
case CharacterType.Athlete:
this.occupation = new Athlete();
break;
default:
this.occupation = null;
this.occupation = new Athlete();
break;
}
this.MaxHp = Occupation.MaxHp;


+ 9
- 13
logic/GameClass/GameObj/Character/Skill.cs View File

@@ -10,8 +10,6 @@ namespace GameClass.GameObj

private readonly object commonSkillLock = new object();
public object ActiveSkillLock => commonSkillLock;

public bool IsBeingUsed { get; set; }
}
public class CanBeginToCharge : IActiveSkill
{
@@ -20,8 +18,6 @@ namespace GameClass.GameObj

private readonly object commonSkillLock = new object();
public object ActiveSkillLock => commonSkillLock;

public bool IsBeingUsed { get; set; }
}

public class BecomeInvisible : IActiveSkill
@@ -31,8 +27,6 @@ namespace GameClass.GameObj

private readonly object commonSkillLock = new object();
public object ActiveSkillLock => commonSkillLock;

public bool IsBeingUsed { get; set; }
}

public class NuclearWeapon : IActiveSkill // 核武器
@@ -41,8 +35,6 @@ namespace GameClass.GameObj
public int DurationTime => GameData.commonSkillTime / 10;
private readonly object commonSkillLock = new object();
public object ActiveSkillLock => commonSkillLock;

public bool IsBeingUsed { get; set; }
}

public class UseKnife : IActiveSkill
@@ -51,8 +43,6 @@ namespace GameClass.GameObj
public int DurationTime => GameData.commonSkillTime / 10;
private readonly object commonSkillLock = new object();
public object ActiveSkillLock => commonSkillLock;

public bool IsBeingUsed { get; set; }
}

public class SuperFast : IActiveSkill // 3倍速
@@ -61,13 +51,19 @@ namespace GameClass.GameObj
public int DurationTime => GameData.commonSkillTime / 10 * 4;
private readonly object commonSkillLock = new object();
public object ActiveSkillLock => commonSkillLock;
}

public bool IsBeingUsed { get; set; }
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)
public static IActiveSkill FindIActiveSkill(ActiveSkillType activeSkillType)
{
switch (activeSkillType)
{
@@ -76,7 +72,7 @@ namespace GameClass.GameObj
case ActiveSkillType.UseKnife:
return new UseKnife();
default:
return null;
return new NullSkill();
}
}



+ 8
- 8
logic/Preparation/Interface/IOccupation.cs View File

@@ -31,7 +31,7 @@ namespace Preparation.Interface

public class Assassin : IGhost
{
private const int moveSpeed = GameData.basicMoveSpeed / 380 * 473;
private const int moveSpeed = GameData.basicMoveSpeed * 473 / 380;
public int MoveSpeed => moveSpeed;

private const int maxHp = GameData.basicHp;
@@ -65,7 +65,7 @@ namespace Preparation.Interface
}
public class Teacher : IStudent
{
private const int moveSpeed = GameData.basicMoveSpeed / 42 * 36;
private const int moveSpeed = GameData.basicMoveSpeed * 3 / 4;
public int MoveSpeed => moveSpeed;

private const int maxHp = GameData.basicHp * 10;
@@ -79,10 +79,10 @@ namespace Preparation.Interface
public List<ActiveSkillType> ListOfIActiveSkill => new(new ActiveSkillType[] { ActiveSkillType.CanBeginToCharge });
public List<PassiveSkillType> ListOfIPassiveSkill => new(new PassiveSkillType[] { });

public const int fixSpeed = GameData.basicFixSpeed / 10 * 6;
public const int fixSpeed = GameData.basicFixSpeed * 6 / 10;
public int FixSpeed => fixSpeed;

public const int treatSpeed = GameData.basicTreatSpeed / 10 * 8;
public const int treatSpeed = GameData.basicTreatSpeed * 8 / 10;
public int TreatSpeed => treatSpeed;

public const double concealment = GameData.basicConcealment * 0.9;
@@ -105,10 +105,10 @@ namespace Preparation.Interface
}
public class Athlete : IStudent
{
private const int moveSpeed = GameData.basicMoveSpeed / 38 * 40;
private const int moveSpeed = GameData.basicMoveSpeed * 40 / 38;
public int MoveSpeed => moveSpeed;

private const int maxHp = GameData.basicHp / 30 * 32;
private const int maxHp = GameData.basicHp * 32 / 30;
public int MaxHp => maxHp;

public const int maxBulletNum = 0;
@@ -119,10 +119,10 @@ namespace Preparation.Interface
public List<ActiveSkillType> ListOfIActiveSkill => new(new ActiveSkillType[] { ActiveSkillType.CanBeginToCharge });
public List<PassiveSkillType> ListOfIPassiveSkill => new(new PassiveSkillType[] { });

public const int fixSpeed = GameData.basicFixSpeed / 10 * 6;
public const int fixSpeed = GameData.basicFixSpeed * 6 / 10;
public int FixSpeed => fixSpeed;

public const int treatSpeed = GameData.basicTreatSpeed / 10 * 8;
public const int treatSpeed = GameData.basicTreatSpeed * 8 / 10;
public int TreatSpeed => treatSpeed;

public const double concealment = GameData.basicConcealment * 0.9;


+ 0
- 1
logic/Preparation/Interface/ISkill.cs View File

@@ -11,6 +11,5 @@
public int SkillCD { get; }
public int DurationTime { get; } //技能持续时间
public object ActiveSkillLock { get; }
public bool IsBeingUsed { get; set; }
}
}

Loading…
Cancel
Save