Skip to content

Commit

Permalink
Fix SkillInfo.Target clone
Browse files Browse the repository at this point in the history
  • Loading branch information
ipdae committed Jul 17, 2023
1 parent 6488222 commit 8f4aef5
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 13 deletions.
18 changes: 10 additions & 8 deletions .Lib9c.Tests/Model/Skill/NormalAttackTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@ public NormalAttackTest(ITestOutputHelper outputHelper)
.CreateLogger();
}

[Fact]
public void Use()
[Theory]
[InlineData(true)]
[InlineData(false)]
public void Use(bool copyCharacter)
{
var sheets = TableSheetsImporter.ImportSheets();
var tableSheets = new TableSheets(sheets);
Expand Down Expand Up @@ -65,7 +67,8 @@ public void Use()
StageSimulator.GetWaveRewards(
random,
tableSheets.StageSheet[1],
tableSheets.MaterialItemSheet)
tableSheets.MaterialItemSheet),
copyCharacter
);
var player = new Player(avatarState, simulator);

Expand All @@ -80,13 +83,12 @@ public void Use()
player,
0,
new List<StatBuff>(),
true);
copyCharacter);
Assert.NotNull(battleStatusSkill);
Assert.Single(battleStatusSkill.SkillInfos);

var skillInfo = battleStatusSkill.SkillInfos.FirstOrDefault();
Assert.NotNull(skillInfo);
Assert.Equal(!copyCharacter, battleStatusSkill.Character is null);
var skillInfo = Assert.Single(battleStatusSkill.SkillInfos);
Assert.Equal(enemy.Id, skillInfo.CharacterId);
Assert.Equal(!copyCharacter, skillInfo.Target is null);
}
}
}
2 changes: 1 addition & 1 deletion Lib9c/Model/Skill/AreaAttack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public override BattleStatus.Skill Use(CharacterBase caster,
IEnumerable<Buff.Buff> buffs, bool copyCharacter)
{
var clone = copyCharacter ? (CharacterBase) caster.Clone() : null;
var damage = ProcessDamage(caster, simulatorWaveTurn);
var damage = ProcessDamage(caster, simulatorWaveTurn, copyCharacter: copyCharacter);
var buff = ProcessBuff(caster, simulatorWaveTurn, buffs);

return new Model.BattleStatus.AreaAttack(SkillRow.Id, clone, damage, buff);
Expand Down
2 changes: 1 addition & 1 deletion Lib9c/Model/Skill/BlowAttack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public override BattleStatus.Skill Use(CharacterBase caster,
IEnumerable<Buff.Buff> buffs, bool copyCharacter)
{
var clone = copyCharacter ? (CharacterBase) caster.Clone() : null;
var damage = ProcessDamage(caster, simulatorWaveTurn);
var damage = ProcessDamage(caster, simulatorWaveTurn, copyCharacter: copyCharacter);
var buff = ProcessBuff(caster, simulatorWaveTurn, buffs);

return new Model.BattleStatus.BlowAttack(SkillRow.Id, clone, damage, buff);
Expand Down
2 changes: 1 addition & 1 deletion Lib9c/Model/Skill/BuffRemovalAttack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public override BattleStatus.Skill Use(CharacterBase caster,
IEnumerable<Buff.Buff> buffs, bool copyCharacter)
{
var clone = copyCharacter ? (CharacterBase) caster.Clone() : null;
var damage = ProcessDamage(caster, simulatorWaveTurn);
var damage = ProcessDamage(caster, simulatorWaveTurn, copyCharacter: copyCharacter);
var buff = ProcessBuff(caster, simulatorWaveTurn, buffs);
var targets = SkillRow.SkillTargetType.GetTarget(caster);
foreach (var target in targets)
Expand Down
2 changes: 1 addition & 1 deletion Lib9c/Model/Skill/DoubleAttack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public override BattleStatus.Skill Use(CharacterBase caster,
IEnumerable<Buff.Buff> buffs, bool copyCharacter)
{
var clone = copyCharacter ? (CharacterBase) caster.Clone() : null;
var damage = ProcessDamage(caster, simulatorWaveTurn);
var damage = ProcessDamage(caster, simulatorWaveTurn, copyCharacter: copyCharacter);
var buff = ProcessBuff(caster, simulatorWaveTurn, buffs);

return new Model.BattleStatus.DoubleAttack(SkillRow.Id, clone, damage, buff);
Expand Down
2 changes: 1 addition & 1 deletion Lib9c/Model/Skill/NormalAttack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public override BattleStatus.Skill Use(CharacterBase caster,
IEnumerable<Buff.Buff> buffs, bool copyCharacter)
{
var clone = copyCharacter ? (CharacterBase) caster.Clone() : null;
var damage = ProcessDamage(caster, simulatorWaveTurn, true);
var damage = ProcessDamage(caster, simulatorWaveTurn, true, copyCharacter);
var buff = ProcessBuff(caster, simulatorWaveTurn, buffs);

return new Model.BattleStatus.NormalAttack(SkillRow.Id, clone, damage, buff);
Expand Down

0 comments on commit 8f4aef5

Please sign in to comment.