62 lines
1.5 KiB
C#
62 lines
1.5 KiB
C#
using System.ComponentModel;
|
|
using Gameplay.Character;
|
|
using Gameplay.Common;
|
|
using Gameplay.Unit;
|
|
public partial class SROptions
|
|
{
|
|
|
|
[Category("战斗"), DisplayName("一击逃跑")]
|
|
public bool OneDamageRetreat
|
|
{
|
|
get
|
|
{
|
|
return CodeDefine.Fight.ONE_DAMAGE_RETREAT;
|
|
}
|
|
set
|
|
{
|
|
CodeDefine.Fight.ONE_DAMAGE_RETREAT = value;
|
|
}
|
|
}
|
|
|
|
[Category("战斗"), DisplayName("禁止士气恢复")]
|
|
public bool DisableMoraleRecover
|
|
{
|
|
get
|
|
{
|
|
return CodeDefine.Fight.DISABLE_MORALE_RECOVER;
|
|
}
|
|
set
|
|
{
|
|
CodeDefine.Fight.DISABLE_MORALE_RECOVER = value;
|
|
}
|
|
}
|
|
|
|
[Category("战斗"), DisplayName("强制清空己方士气")]
|
|
public void ClearSelfSideMorale()
|
|
{
|
|
ClearSideMorale(ETroopsId.Self);
|
|
}
|
|
|
|
[Category("战斗"), DisplayName("强制清空敌方士气")]
|
|
public void ClearEnemySideMorale()
|
|
{
|
|
ClearSideMorale(ETroopsId.Enemy);
|
|
}
|
|
|
|
public void ClearSideMorale(int sideType)
|
|
{
|
|
var oldOneDamageRetreat = OneDamageRetreat;
|
|
OneDamageRetreat = true;
|
|
var allUnits = GameUnitManager.instance.infightUnits.unitList;
|
|
foreach (var unit in allUnits)
|
|
{
|
|
if (unit.commonData.troopId == sideType)
|
|
{
|
|
unit.TakeMoraleDamage(1, unit);
|
|
}
|
|
}
|
|
OneDamageRetreat = oldOneDamageRetreat;
|
|
}
|
|
|
|
}
|