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;
397 public virtual IEnumerable<Status>
Run()
428 if (pos ==
null || !pos.
IsValid)
430 return _onChildFail?.Invoke() ??
Cancel();
432 SetChild(
new AI_Goto(pos, 0, _ignoreConnection:
false, _interaction:
true), _onChildFail);
436 public Status DoGoto(
Point pos,
int dist = 0,
bool ignoreConnection =
false, Func<Status> _onChildFail =
null)
438 if (pos ==
null || !pos.
IsValid)
440 return _onChildFail?.Invoke() ??
Cancel();
457 if (
card ==
null || !
card.ExistsOnMap)
459 return _onChildFail?.Invoke() ??
Cancel();
471 if (
card ==
null || !
card.ExistsOnMap)
473 return _onChildFail?.Invoke() ??
Cancel();
475 Point randomPoint =
card.trait.GetRandomPoint();
476 int dist = (randomPoint.cell.blocked ? 1 : 0);
493 return _onChildFail?.Invoke() ??
Status.Fail;
502 if (
card ==
null || !
card.GetRootCard().ExistsOnMap)
549 onProgress = delegate
558 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
virtual bool ShouldEndMimicry
void Say(string lang, string ref1=null, string ref2=null)
void PickHeld(bool msg=false)
ConTransmuteMimic mimicry
void SetAIImmediate(AIAct g)
void SetTempHand(int right=0, int left=0)
Card DropHeld(Point dropPos=null)
void Kill(bool silent=false)
TraitSet GetTraitSet(Type t)
Point GetRandomPoint(Func< Point, bool > func=null, Chara accessChara=null)