This commit is contained in:
2026-07-09 21:33:33 +02:00
commit 84a2a365f3
2364 changed files with 950134 additions and 0 deletions
@@ -0,0 +1,62 @@
using VOID.Generic.Objects.Abstract;
using VOID.Generic.Objects.Unit.Actions.Exceptions;
using VOID.Generic.Objects.Unit.Events;
using VOID.Generic.Util;
namespace VOID.Generic.Objects.Unit.Actions
{
public class TalkAction : AbstractAction
{
private readonly UnitObject _unit;
private readonly UnitObject _targetObject;
public TalkAction(UnitObject unit, UnitObject targetObject)
{
_unit = unit;
_targetObject = targetObject;
}
public override bool IsInRange()
{
return RangeUtil.IsInRange(_unit, _targetObject, _unit.unitData.talkRange);
}
protected override void OnEndIt() { }
protected override void OnCancelIt() { }
public override void CanDoIt()
{
Check(
_unit.unitData.canTalk,
UnitActionErrorType.ThisUnitCantTalk);
Check(
_targetObject.unitData.canBeTalked,
UnitActionErrorType.OtherUnitCantBeTalked);
Check(
state == ActionState.Ready,
UnitActionErrorType.ActionStateIsNotReady);
Check(
!_unit.basicState.turnManager,
UnitActionErrorType.TalkNotAvailableWhenTurnActive);
Check(
_unit.unitState.isControllable,
UnitActionErrorType.UnitStateIsNotControllable);
Check(
_unit.unitState.isControllable,
UnitActionErrorType.UnitStateIsNotControllable);
Check(
IsInRange(),
UnitActionErrorType.NotInRange);
}
protected override void OnDoIt()
{
new RotateAction(_unit, _targetObject).DoIt();
BeforePerform();
// Tutaj rozmowa
AfterPerform();
EndIt();
}
}
}