2using System.Collections.Generic;
48 return child.owner !=
null;
68 public new virtual string Name => base.source.GetName();
114 public override bool IsAct =>
false;
126 return GetType().Name;
131 return (
child ??
this).stateIcon;
163 return base.source.GetName().IsEmpty(
"idle".lang());
170 return Act.TOOL.parent ==
EClass.
pc;
393 public virtual IEnumerable<Status>
Run()
424 if (pos ==
null || !pos.
IsValid)
426 return _onChildFail?.Invoke() ??
Cancel();
428 SetChild(
new AI_Goto(pos, 0, _ignoreConnection:
false, _interaction:
true), _onChildFail);
432 public Status DoGoto(
Point pos,
int dist = 0,
bool ignoreConnection =
false, Func<Status> _onChildFail =
null)
434 if (pos ==
null || !pos.
IsValid)
436 return _onChildFail?.Invoke() ??
Cancel();
453 if (
card ==
null || !
card.ExistsOnMap)
455 return _onChildFail?.Invoke() ??
Cancel();
467 if (
card ==
null || !
card.ExistsOnMap)
469 return _onChildFail?.Invoke() ??
Cancel();
471 Point randomPoint =
card.trait.GetRandomPoint();
472 int dist = (randomPoint.cell.blocked ? 1 : 0);
489 return _onChildFail?.Invoke() ??
Status.Fail;
498 if (
card ==
null || !
card.GetRootCard().ExistsOnMap)
545 onProgress = delegate
554 return progress_Custom;
virtual Thing RenderThing
Status DoGoto(Card card, Func< Status > _onChildFail=null)
Status DoGoto(Card card, int dist, Func< Status > _onChildFail=null)
virtual bool CanManualCancel()
virtual void OnSimulateZone(int days)
override bool ShowRelativeAttribute
Func< Status > onChildFail
Status DoGrab(Card card, int num=-1, bool pickHeld=false, Func< Status > _onChildFail=null)
virtual void OnSetOwner()
Status Success(Action action=null)
virtual void OnCancelOrSuccess()
Status DoGotoSpot< T >(Func< Status > _onChildFail=null, bool ignoreAccessType=false)
virtual void OnProgress()
virtual bool InformCancel
virtual void OnBeforeProgress()
IEnumerator< Status > Enumerator
Status DoGoto< T >(Func< Status > _onChildFail=null)
virtual bool ShowProgress
Status DoGotoInteraction(Point pos, Func< Status > _onChildFail=null)
Status Do(AIAct _seq, Func< Status > _onChildFail=null)
virtual void OnSimulatePosition()
virtual bool ShouldAllyAttack(Chara tg)
virtual void OnCreateProgress(Progress_Custom p)
virtual AIProgress CreateProgress()
virtual IEnumerable< Status > Run()
virtual Sprite actionIcon
override MultiSprite GetStateIcon()
virtual bool CancelOnAggro
Status DoGotoSpot(Card card, Func< Status > _onChildFail=null)
virtual bool CancelWhenDamaged
override bool IsToolValid()
override string ToString()
virtual void OnProgressComplete()
Status DoWait(int count=1)
Status DoGoto(Point pos, int dist=0, bool ignoreConnection=false, Func< Status > _onChildFail=null)
void SetChild(AIAct seq, Func< Status > _onChildFail=null)
Status DoIdle(int repeat=3)
virtual bool CancelWhenMoved
virtual int CurrentProgress
virtual bool CanProgress()
virtual MultiSprite stateIcon
string GetCurrentActionText()
void SimulateZone(int days)
override bool ShowPotential
virtual Point GetDestination()
override bool UsePotential
void SetTurbo(int mtp=-1)
virtual bool PickHeldOnStart
virtual bool DropHeldOnStart
void Say(string lang, string ref1=null, string ref2=null)
void PickHeld(bool msg=false)
void SetAIImmediate(AIAct g)
void SetTempHand(int right=0, int left=0)
Card DropHeld(Point dropPos=null)
TraitSet GetTraitSet(Type t)
Point GetRandomPoint(Func< Point, bool > func=null, Chara accessChara=null)