Browse Source

feat: adjust Assassin

tags/v0.1.0
shangfengh 2 years ago
parent
commit
288412bf87
3 changed files with 52 additions and 22 deletions
  1. +5
    -1
      docs/版本更新说明.md
  2. +31
    -18
      logic/GameClass/GameObj/Character/Character.cs
  3. +16
    -3
      logic/Gaming/SkillManager/SkillManager.ActiveSkill.cs

+ 5
- 1
docs/版本更新说明.md View File

@@ -44,5 +44,9 @@
- fix:修复了InSpire会给Tricker加速的问题
- fix:修复了开锁门的bug

# 5月19日15:00更新
- docs:更新了 游戏机制与平衡性调整更新草案.pdf
- hotfix:修复了移动状态设置错误

# 最新更新
- docs:更新了 游戏机制与平衡性调整更新草案.pdf
- feat:Assassin已调整

+ 31
- 18
logic/GameClass/GameObj/Character/Character.cs View File

@@ -362,8 +362,7 @@ namespace GameClass.GameObj
lock (actionLock)
{
if (playerState == PlayerStateType.Moving)
if (IsMoving == 1) return PlayerStateType.Moving;
else return PlayerStateType.Null;
return (IsMoving == 1) ? PlayerStateType.Moving : PlayerStateType.Null;
return playerState;
}
}
@@ -540,27 +539,41 @@ namespace GameClass.GameObj
ThreadNum.Release();
}
case PlayerStateType.UsingSkill:
if (CharacterType == CharacterType.TechOtaku)
{
if (typeof(CraftingBench).IsInstanceOfType(whatInteractingWith))
switch (CharacterType)
{
try
{
((CraftingBench)whatInteractingWith!).StopSkill();
case CharacterType.TechOtaku:
{
if (typeof(CraftingBench).IsInstanceOfType(whatInteractingWith))
{
try
{
((CraftingBench)whatInteractingWith!).StopSkill();
return ChangePlayerState(value, gameObj);
}
finally
{
ThreadNum.Release();
}
}
else
{
if (value != PlayerStateType.UsingSkill)
((UseRobot)FindActiveSkill(ActiveSkillType.UseRobot)).NowPlayerID = (int)playerID;
return ChangePlayerState(value, gameObj);
}
}
case CharacterType.Assassin:
if (value == PlayerStateType.Moving) return StateNum;
else
{
TryDeleteInvisible();
return ChangePlayerState(value, gameObj);
}
default:
return ChangePlayerState(value, gameObj);
}
finally
{
ThreadNum.Release();
}
}
else
{
if (value != PlayerStateType.UsingSkill)
((UseRobot)FindActiveSkill(ActiveSkillType.UseRobot)).NowPlayerID = (int)playerID;
}
}
return ChangePlayerState(value, gameObj);
default:
return ChangePlayerState(value, gameObj);
}


+ 16
- 3
logic/Gaming/SkillManager/SkillManager.ActiveSkill.cs View File

@@ -93,16 +93,29 @@ namespace Gaming

public static bool BecomeInvisible(Character player)
{
if ((!player.Commandable())) return false;
ActiveSkill activeSkill = player.FindActiveSkill(ActiveSkillType.BecomeInvisible);
long stateNum = player.SetPlayerState(PlayerStateType.UsingSkill);
if (stateNum == -1)
{
return false;
}
return ActiveSkillEffect(activeSkill, player, () =>
{
player.AddScore(GameData.ScoreBecomeInvisible);
player.AddInvisible(activeSkill.DurationTime);
Debugger.Output(player, "become invisible!");
},
() =>
{ });
() =>
{
lock (player.ActionLock)
{
if (stateNum == player.StateNum)
{
player.SetPlayerStateNaturally();
}
}
}
);
}

public bool UseRobot(Character player, int robotID)


Loading…
Cancel
Save