Elin Decompiled Documentation EA 23.233 Nightly Patch 1
Loading...
Searching...
No Matches
AI_Idle Class Reference
Inheritance diagram for AI_Idle:
AIAct Act Element EClass

Public Types

enum  Behaviour { Default , NoMove }
 
- Public Types inherited from AIAct
enum  Status { Running , Fail , Success }
 
- Public Types inherited from Act
enum  CostType { None , MP , SP }
 

Public Member Functions

override void OnStart ()
 
override IEnumerable< StatusRun ()
 
void IdleActText (string id)
 
void TryCast< T > (EffectId id, int power=100)
 
void TryCast (EffectId id, int power=100)
 
BaseArea GetRandomAssignedRoom ()
 
Chara DoSomethingToNearChara (Func< Chara, bool > funcPickChara, Action< Chara > action=null)
 
Chara DoSomethingToCharaInRadius (int radius, Func< Chara, bool > funcPickChara, Action< Chara > action=null)
 
bool TryPerformIdleUse ()
 
- Public Member Functions inherited from AIAct
override string ToString ()
 
override MultiSprite GetStateIcon ()
 
virtual bool ShouldAllyAttack (Chara tg)
 
virtual Point GetDestination ()
 
AIProgress GetProgress ()
 
string GetCurrentActionText ()
 
override bool IsToolValid ()
 
virtual void OnStart ()
 
void SetOwner (Chara c)
 
virtual void OnSetOwner ()
 
void SetChild (AIAct seq, Func< Status > _onChildFail=null)
 
void Start ()
 
override bool Perform ()
 
Status Restart ()
 
Status Success (Action action=null)
 
virtual void OnSuccess ()
 
bool TryCancel (Card c)
 
virtual Status Cancel ()
 
virtual void OnCancel ()
 
virtual void OnCancelOrSuccess ()
 
virtual bool CanManualCancel ()
 
Status KeepRunning ()
 
void Reset ()
 
virtual void OnReset ()
 
Status Tick ()
 
virtual IEnumerable< StatusRun ()
 
Status TickChild ()
 
Status Do (AIAct _seq, Func< Status > _onChildFail=null)
 
Status DoGotoInteraction (Point pos, Func< Status > _onChildFail=null)
 
Status DoGoto (Point pos, int dist=0, bool ignoreConnection=false, Func< Status > _onChildFail=null)
 
Status DoGoto (Card card, Func< Status > _onChildFail=null)
 
Status DoGoto (Card card, int dist, Func< Status > _onChildFail=null)
 
Status DoGotoSpot (Card card, Func< Status > _onChildFail=null)
 
Status DoGoto< T > (Func< Status > _onChildFail=null)
 
Status DoGotoSpot< T > (Func< Status > _onChildFail=null, bool ignoreAccessType=false)
 
Status DoGrab (Card card, int num=-1, bool pickHeld=false, Func< Status > _onChildFail=null)
 
Status DoGrab< T > ()
 
Status DoProgress ()
 
Status DoIdle (int repeat=3)
 
Status DoWait (int count=1)
 
virtual AIProgress CreateProgress ()
 
virtual void OnCreateProgress (Progress_Custom p)
 
virtual bool CanProgress ()
 
virtual void OnBeforeProgress ()
 
virtual void OnProgress ()
 
virtual void OnProgressComplete ()
 
void SimulateZone (int days)
 
virtual void OnSimulateZone (int days)
 
virtual void OnSimulatePosition ()
 
- Public Member Functions inherited from Act
virtual CursorInfo GetCursorIcon (Card c)
 
virtual MultiSprite GetStateIcon ()
 
override Sprite GetSprite ()
 
virtual bool ShowMouseHint (Card c)
 
virtual bool IsValidTC (Card c)
 
virtual string GetHintText (string str="")
 
virtual string GetText (string str="")
 
virtual string GetTextSmall (Card c)
 
bool IsTargetHostileParty ()
 
virtual Color GetActPlanColor ()
 
virtual bool Perform ()
 
virtual bool CanPerform ()
 
bool Perform (Chara _cc, Card _tc=null, Point _tp=null)
 
bool CanPerform (Chara _cc, Card _tc=null, Point _tp=null)
 
virtual bool IsToolValid ()
 
new void SetImage (Image image)
 
virtual void OnMarkMapHighlights ()
 
virtual bool ShouldMapHighlight (Point p)
 
- Public Member Functions inherited from Element
virtual SourceElement.Row GetSource ()
 
virtual int GetSourcePotential (int v)
 
virtual Sprite GetSprite ()
 
int GetMaterialSourceValue (Thing t, int v)
 
virtual long GetSourceValue (long v, int lv, SourceValueType type)
 
virtual Sprite GetIcon (string suffix="")
 
bool IsActive (Card c)
 
int SortVal (bool charaSheet=false)
 
virtual bool CanLink (ElementContainer owner)
 
bool HasTag (string tag)
 
void SetImage (Image i)
 
virtual string GetDetail ()
 
bool IsFactionElement (Chara c)
 
Element GetParent (Card c)
 
void WriteNote (UINote n, ElementContainer owner=null, Action< UINote > onWriteNote=null)
 
void WriteNoteWithRef (UINote n, ElementContainer owner, Action< UINote > onWriteNote, Element refEle)
 
void _WriteNote (UINote n, Chara c, Act act)
 
void AddHeaderAbility (UINote n)
 
void _WriteNote (UINote n, ElementContainer owner, Action< UINote > onWriteNote, bool isRef, bool addHeader=true)
 
void AddEncNote (UINote n, Card Card, ElementContainer.NoteMode mode=ElementContainer.NoteMode.Default, Func< Element, string, string > funcText=null, Action< UINote, Element > onAddNote=null)
 
virtual void OnWriteNote (UINote n, ElementContainer owner)
 
virtual void OnChangeValue ()
 
void CheckLevelBonus (ElementContainer owner, UINote n=null)
 
int GetSortVal (UIList.SortMode m)
 
virtual Act.Cost GetCost (Chara c)
 
virtual int GetPower (Card c)
 
virtual void SetTextValue (UIText text)
 
virtual bool IsPurchaseFeatReqMet (ElementContainer owner, int lv=-1)
 
virtual void WritePurchaseReq (UINote n, int lv=1)
 

Public Attributes

int maxRepeat = 10
 
int moveFailCount
 
- Public Attributes inherited from AIAct
new Chara owner
 
Status status
 
IEnumerator< StatusEnumerator
 
AIAct child
 
AIAct parent
 
byte restartCount
 
Func< StatusonChildFail
 
Func< bool > isFail
 
- Public Attributes inherited from Element
SourceElement.Row _source
 
int id
 
int vBase
 
int vExp
 
int vPotential
 
int vTempPotential
 
int vLink
 
int vSource
 
int vSourcePotential
 
ElementContainer owner
 

Properties

override bool IsIdle [get]
 
override bool InformCancel [get]
 
override int MaxRestart [get]
 
- Properties inherited from AIAct
virtual bool IsRunning [get]
 
bool IsChildRunning [get]
 
bool IsMoveAI [get]
 
virtual int MaxRestart [get]
 
virtual new string Name [get]
 
virtual MultiSprite stateIcon [get]
 
virtual Sprite actionIcon [get]
 
virtual bool IsNoGoal [get]
 
virtual bool IsAutoTurn [get]
 
virtual bool IsIdle [get]
 
virtual bool CancelOnAggro [get]
 
virtual bool PushChara [get]
 
virtual int MaxProgress [get]
 
virtual bool ShowProgress [get]
 
virtual bool UseTurbo [get]
 
virtual int CurrentProgress [get]
 
virtual bool ShowCursor [get]
 
virtual bool CancelWhenDamaged [get]
 
virtual bool CancelWhenMoved [get]
 
virtual bool InformCancel [get]
 
virtual Thing RenderThing [get]
 
AIAct Current [get]
 
override bool IsAct [get]
 
override bool ShowPotential [get]
 
override bool UsePotential [get]
 
override bool ShowRelativeAttribute [get]
 
virtual bool HasProgress [get]
 
- Properties inherited from Act
override bool ShowPotential [get]
 
override bool UsePotential [get]
 
override bool ShowRelativeAttribute [get]
 
virtual CursorInfo CursorIcon [get]
 
virtual string ID [get]
 
virtual bool IsAct [get]
 
virtual bool WillEndTurn [get]
 
virtual bool CloseLayers [get]
 
virtual int LeftHand [get]
 
virtual int RightHand [get]
 
virtual int ElementPowerMod [get]
 
virtual bool ShowMapHighlight [get]
 
virtual bool ShowMapHighlightBlock [get]
 
virtual bool PickHeldOnStart [get]
 
virtual bool DropHeldOnStart [get]
 
virtual bool CanPressRepeat [get]
 
virtual bool CanAutofire [get]
 
virtual bool ResetAxis [get]
 
virtual bool RequireTool [get]
 
virtual bool IsHostileAct [get]
 
virtual bool HideRightInfo [get]
 
virtual bool HaveLongPressAction [get]
 
virtual float Radius [get]
 
virtual int PerformDistance [get]
 
virtual int MaxRadius [get]
 
virtual TargetType TargetType [get]
 
virtual bool LocalAct [get]
 
virtual bool CanRapidFire [get]
 
virtual float RapidDelay [get]
 
virtual bool ShowAuto [get]
 
virtual bool IsCrime [get]
 
- Properties inherited from Element
SourceElement.Row source [get]
 
virtual int DisplayValue [get]
 
virtual int MinValue [get]
 
int Value [get]
 
int ValueWithoutLink [get]
 
virtual int MinPotential [get]
 
int Potential [get]
 
virtual bool CanGainExp [get]
 
bool IsFlag [get]
 
virtual string Name [get]
 
virtual string FullName [get]
 
virtual int ExpToNext [get]
 
virtual bool UseExpMod [get]
 
virtual int CostTrain [get]
 
virtual int CostLearn [get]
 
virtual bool ShowXP [get]
 
virtual bool ShowMsgOnValueChanged [get]
 
virtual bool ShowValue [get]
 
virtual bool ShowPotential [get]
 
virtual bool UsePotential [get]
 
virtual bool PotentialAsStock [get]
 
virtual bool ShowRelativeAttribute [get]
 
virtual bool ShowBonuses [get]
 
virtual string ShortName [get]
 
bool IsGlobalElement [get]
 
bool IsFactionWideElement [get]
 
bool IsPartyWideElement [get]
 
virtual bool ShowEncNumber [get]
 
bool IsTrait [get]
 
bool IsFoodTrait [get]
 
bool IsFoodTraitMain [get]
 
bool IsMainAttribute [get]
 
Act act [get]
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Static Private Attributes

static List< BaseArea_listRoom = new List<BaseArea>()
 

Additional Inherited Members

- Static Public Member Functions inherited from Act
static void SetReference (Chara _cc, Card _tc=null, Point _tp=null)
 
static void SetTool (Thing t)
 
- Static Public Member Functions inherited from Element
static string GetName (string alias)
 
static SourceElement.Row Get (int id)
 
static Dictionary< int, int > GetElementMap (int[] list)
 
static Dictionary< int, int > GetElementMap (int[] list, Dictionary< int, int > map)
 
static SourceElement.Row GetRandomElement (int lv=1, bool useWeight=true)
 
static Element Create (int id, int v=0)
 
static Element Create (string id, int v=1)
 
static int GetId (string alias)
 
static int GetResistLv (int v)
 
static int GetResistDamage (int dmg, int v, int power=0)
 
- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (int a, int start, int step, int rate=75)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 
- Static Public Attributes inherited from Act
static Chara CC
 
static Card TC
 
static Point TP = new Point()
 
static Thing TOOL
 
static int powerMod = 100
 
static bool forcePt
 
static Act CurrentAct
 
- Static Public Attributes inherited from Element
const int Div = 5
 
static Element Void = new Element()
 
static int[] List_MainAttributes = new int[9] { 70, 72, 71, 77, 74, 75, 76, 73, 79 }
 
static int[] List_MainAttributesMajor = new int[8] { 70, 72, 71, 77, 74, 75, 76, 73 }
 
static int[] List_Body = new int[4] { 70, 72, 71, 77 }
 
static int[] List_Mind = new int[4] { 74, 75, 76, 73 }
 
static List< SourceElement.RowListElements = new List<SourceElement.Row>()
 
static List< SourceElement.RowListAttackElements = new List<SourceElement.Row>()
 
- Static Public Attributes inherited from EClass
static Core core
 

Detailed Description

Definition at line 6 of file AI_Idle.cs.

Member Enumeration Documentation

◆ Behaviour

Enumerator
Default 
NoMove 

Definition at line 8 of file AI_Idle.cs.

Member Function Documentation

◆ DoSomethingToCharaInRadius()

Chara AI_Idle.DoSomethingToCharaInRadius ( int  radius,
Func< Chara, bool >  funcPickChara,
Action< Chara action = null 
)
inline

Definition at line 996 of file AI_Idle.cs.

997 {
998 List<Chara> list = owner.pos.ListCharasInRadius(owner, radius, delegate(Chara c)
999 {
1000 if (c == owner || !owner.CanSee(c))
1001 {
1002 return false;
1003 }
1004 return funcPickChara == null || funcPickChara(c);
1005 });
1006 if (list.Count > 0)
1007 {
1008 Chara chara = list.RandomItem();
1009 action?.Invoke(chara);
1010 return chara;
1011 }
1012 return null;
1013 }
new Chara owner
Definition: AIAct.cs:14
Point pos
Definition: Card.cs:59
Definition: Chara.cs:10
bool CanSee(Card c)
Definition: Chara.cs:1216
List< Chara > ListCharasInRadius(Chara cc, int dist, Func< Chara, bool > func, bool onlyVisible=true)
Definition: Point.cs:1208

References Chara.CanSee(), Point.ListCharasInRadius(), and Card.pos.

Referenced by Run().

◆ DoSomethingToNearChara()

Chara AI_Idle.DoSomethingToNearChara ( Func< Chara, bool >  funcPickChara,
Action< Chara action = null 
)
inline

Definition at line 977 of file AI_Idle.cs.

978 {
979 List<Chara> list = owner.pos.ListCharasInNeighbor(delegate(Chara c)
980 {
981 if (c == owner || !owner.CanSee(c))
982 {
983 return false;
984 }
985 return funcPickChara == null || funcPickChara(c);
986 });
987 if (list.Count > 0)
988 {
989 Chara chara = list.RandomItem();
990 action?.Invoke(chara);
991 return chara;
992 }
993 return null;
994 }
List< Chara > ListCharasInNeighbor(Func< Chara, bool > func)
Definition: Point.cs:1188

References Chara.CanSee(), Point.ListCharasInNeighbor(), and Card.pos.

Referenced by Run().

◆ GetRandomAssignedRoom()

BaseArea AI_Idle.GetRandomAssignedRoom ( )
inline

Definition at line 964 of file AI_Idle.cs.

965 {
966 _listRoom.Clear();
967 foreach (BaseArea item in ((IEnumerable<BaseArea>)EClass._map.rooms.listRoom).Concat((IEnumerable<BaseArea>)EClass._map.rooms.listArea))
968 {
969 if (item.type != null && item.type.uidCharas.Contains(owner.uid))
970 {
971 _listRoom.Add(item);
972 }
973 }
974 return _listRoom.RandomItem();
975 }
static List< BaseArea > _listRoom
Definition: AI_Idle.cs:18
int uid
Definition: Card.cs:122
Definition: EClass.cs:5
static Map _map
Definition: EClass.cs:18
RoomManager rooms
Definition: Map.cs:31
List< Room > listRoom
Definition: RoomManager.cs:13
List< Area > listArea
Definition: RoomManager.cs:10

References EClass._map, item, RoomManager.listArea, RoomManager.listRoom, and Map.rooms.

◆ IdleActText()

void AI_Idle.IdleActText ( string  id)
inline

Definition at line 940 of file AI_Idle.cs.

941 {
942 string text = "idle_" + id;
943 owner.PlaySound(text);
944 if (Lang.Game.map.ContainsKey(text))
945 {
946 owner.Say(text, owner);
947 }
948 }
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6077
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6729
int id
Definition: ELEMENT.cs:250
Definition: Lang.cs:6
static LangGame Game
Definition: Lang.cs:48

References Lang.Game.

Referenced by Run().

◆ OnStart()

override void AI_Idle.OnStart ( )
inlinevirtual

Reimplemented from AIAct.

Definition at line 26 of file AI_Idle.cs.

27 {
28 owner.SetTempHand(-1, -1);
29 owner.ShowEmo();
30 }
void ShowEmo(Emo _emo=Emo.none, float duration=0f, bool skipSame=true)
Definition: Card.cs:6045
void SetTempHand(int right=0, int left=0)
Definition: Chara.cs:6610

References AIAct.owner, Chara.SetTempHand(), and Card.ShowEmo().

◆ Run()

override IEnumerable< Status > AI_Idle.Run ( )
inlinevirtual

Reimplemented from AIAct.

Definition at line 32 of file AI_Idle.cs.

33 {
34 while (true)
35 {
36 if (owner.held != null)
37 {
39 }
40 if (owner.nextUse != null)
41 {
42 Thing nextUse = owner.nextUse;
43 owner.nextUse = null;
44 if (nextUse.parent == owner && !nextUse.isDestroyed)
45 {
46 owner.TryUse(nextUse);
47 }
48 yield return KeepRunning();
49 }
51 {
52 if (EClass.rnd(5) == 0)
53 {
54 owner.Talk("onFire");
55 }
57 {
58 yield return Restart();
59 }
60 }
61 if (EClass.rnd(owner.IsPCParty ? 10 : 100) == 0 && owner.hunger.GetPhase() >= 3)
62 {
63 Thing thing = (owner.IsPCFaction ? owner.FindBestFoodToEat() : owner.things.Find((Thing a) => owner.CanEat(a, owner.IsPCFaction) && !a.c_isImportant, recursive: false));
64 if (thing == null && owner.IsPCFaction && EClass._zone.IsPCFaction)
65 {
67 if (thing != null)
68 {
69 owner.Pick(thing);
70 }
71 }
72 if (thing == null && !owner.IsPCParty)
73 {
74 if (!owner.IsPCFaction && EClass.rnd(8) != 0)
75 {
76 owner.hunger.Mod(-30);
77 }
78 else if (!owner.things.IsFull())
79 {
80 thing = ThingGen.CreateFromCategory("food", EClass.rnd(EClass.rnd(60) + 1) + 10);
81 if (thing.trait.CanEat(owner))
82 {
83 thing.isNPCProperty = true;
84 thing = owner.AddThing(thing);
85 }
86 else
87 {
88 thing = null;
89 }
90 }
91 }
92 if (thing != null)
93 {
95 {
96 owner.InstantEat(thing, sound: false);
97 yield return Restart();
98 }
99 else if (thing.Num == 1 || !owner.things.IsFull())
100 {
101 yield return Do(new AI_Eat
102 {
103 target = thing
104 });
105 }
106 }
107 }
108 if (!EClass._zone.IsRegion)
109 {
110 if (EClass.rnd(10) == 0 && owner.ability.Has(6627) && ((float)owner.hp < (float)owner.MaxHP * 0.8f || EClass.rnd(10) == 0) && owner.GetNearbyCatToSniff() != null && !owner.HasCondition<ConHOT>())
111 {
113 yield return KeepRunning();
114 }
115 if (EClass.rnd(3) == 0 && owner.mana.value > 0)
116 {
117 Act act = null;
118 Act actRevive = null;
119 foreach (ActList.Item item in owner.ability.list.items)
120 {
121 Act act2 = item.act;
122 if (act2.id == 8430)
123 {
124 actRevive = act2;
125 }
126 string[] abilityType = act2.source.abilityType;
127 if (!abilityType.IsEmpty() && (abilityType[0] == "heal" || abilityType[0] == "hot"))
128 {
129 act = item.act;
130 }
131 }
132 if (act != null)
133 {
134 List<Chara> list = (owner.IsPCParty ? EClass.pc.party.members : new List<Chara> { owner });
135 foreach (Chara item2 in list)
136 {
137 if (!((float)item2.hp > (float)item2.MaxHP * 0.75f) && owner.CanSeeLos(item2) && (!(act.source.abilityType[0] == "hot") || !item2.HasCondition<ConHOT>()))
138 {
139 owner.UseAbility(act, item2);
140 yield return KeepRunning();
141 break;
142 }
143 }
144 }
145 if (actRevive != null && owner.IsPCFaction && EClass.game.cards.globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList().Count > 0 && owner.UseAbility(actRevive.source.alias, owner))
146 {
147 yield return KeepRunning();
148 }
149 }
150 }
152 {
154 if (owner.sharedCheckTurn < 0 && EClass.rnd(EClass.debug.enable ? 2 : 20) == 0)
155 {
158 owner.sharedCheckTurn += (EClass.debug.enable ? 20 : 200);
159 }
160 }
161 if ((EClass._zone is Zone_Civilized || EClass._zone.IsPCFaction) && (owner.IsPCParty ? 10 : (owner.IsPCFaction ? 2 : 0)) > EClass.rnd(100))
162 {
163 Thing thing2 = owner.things.Find("polish_powder");
164 if (thing2 != null && EClass._map.props.installed.Find<TraitGrindstone>() != null)
165 {
166 foreach (Thing thing9 in owner.things)
167 {
168 if (!thing9.IsEquipment || thing9.encLV >= 0)
169 {
170 continue;
171 }
172 for (int j = 0; j < 5; j++)
173 {
174 if (thing9.encLV >= 0)
175 {
176 break;
177 }
178 owner.Say("polish", owner, thing9);
179 thing9.ModEncLv(1);
180 thing2.ModNum(-1);
181 if (thing2.isDestroyed)
182 {
183 break;
184 }
185 }
186 if (thing2.isDestroyed)
187 {
188 break;
189 }
190 }
191 }
192 }
193 if (owner.IsPCParty)
194 {
196 {
197 TraitShackle traitShackle = owner.pos.FindThing<TraitShackle>();
198 if (traitShackle != null && traitShackle.AllowTraining)
199 {
201 {
202 shackle = traitShackle
203 });
204 }
205 yield return Restart();
206 }
207 if (EClass.rnd(20) == 0)
208 {
209 Thing thing3 = owner.things.Find((Thing a) => a.parent == owner && a.isGifted && (a.category.id == "skillbook" || a.category.id == "ancientbook"));
210 if (thing3 != null && thing3.trait.CanRead(owner) && (thing3.Num == 1 || !owner.things.IsFull()))
211 {
212 yield return Do(new AI_Read
213 {
214 target = thing3
215 });
216 }
217 }
218 if (EClass.rnd(100) == 0 && !EClass._zone.IsRegion && owner.HasElement(1227))
219 {
220 List<Chara> list2 = new List<Chara>();
221 foreach (Chara member in EClass.pc.party.members)
222 {
223 if (member.Evalue(1227) > 0)
224 {
225 list2.Add(member);
226 }
227 }
228 if (list2.Count > 2 + EClass.pc.party.EvalueTotal(1272, (Chara c) => c.IsPC || c.faith == EClass.game.religions.Harmony))
229 {
230 list2.Remove(owner);
231 owner.SetEnemy(list2.RandomItem());
232 yield return Success();
233 }
234 }
235 if (EClass.rnd(150) == 0 && owner.host != null && owner.host.parasite == owner && owner.GetInt(108) == 1)
236 {
237 owner.host.PlaySound("whip");
238 owner.host.Say("use_whip3", owner, owner.host);
239 owner.Talk("insult");
240 owner.host.PlayAnime(AnimeID.Shiver);
241 owner.host.DamageHP(5 + EClass.rndHalf(owner.host.MaxHP / 5), 919, 100, AttackSource.Condition);
243 yield return KeepRunning();
244 }
245 if (EClass.rnd(EClass.debug.enable ? 2 : 20) == 0 && owner.CanSee(EClass.pc) && !(EClass.pc.ai is AI_Eat))
246 {
248 }
249 if (owner.isSynced && EClass.rnd((owner.host == null) ? 200 : 150) == 0 && owner.GetInt(106) == 0)
250 {
251 if (EClass.rnd(2) == 0 && owner.GetInt(108) == 1)
252 {
253 owner.Talk("insult");
254 }
255 else
256 {
258 }
259 }
260 if (EClass.rnd(100) == 0 && EClass._zone.IsTown)
261 {
263 }
264 if ((EClass.rnd(20) == 0 || EClass.debug.enable) && owner.GetCurrency() >= 500)
265 {
266 bool flag = EClass._zone.IsTown;
268 {
269 foreach (Chara member2 in EClass._zone.branch.members)
270 {
271 if (member2.ExistsOnMap && member2.trait is TraitTrainer)
272 {
273 flag = true;
274 }
275 }
276 }
277 if (flag)
278 {
279 bool flag2 = false;
280 foreach (Element value in owner.elements.dict.Values)
281 {
282 if (!(value.source.category != "skill") && value.vTempPotential < 900)
283 {
284 flag2 = true;
285 break;
286 }
287 }
288 if (flag2)
289 {
290 int num = owner.GetCurrency();
291 if (num >= 20000)
292 {
293 num = 20000;
294 }
295 owner.PlaySound("pay");
296 int num2 = num / 200;
297 foreach (Element value2 in owner.elements.dict.Values)
298 {
299 if (!(value2.source.category != "skill"))
300 {
301 int num3 = num2 * 100 / (100 + (100 + value2.vTempPotential / 2 + value2.ValueWithoutLink) * (100 + value2.vTempPotential / 2 + value2.ValueWithoutLink) / 100);
302 num3 += 1 + EClass.rnd(3);
303 owner.elements.ModTempPotential(value2.id, Mathf.Max(1, num3), 9999);
304 }
305 }
306 Msg.Say("party_train", owner, Lang._currency(num));
307 owner.PlaySound("ding_potential");
308 owner.ModCurrency(-num);
309 }
310 }
311 }
312 }
313 if (owner.c_uidMaster != 0)
314 {
315 Chara chara = owner.master;
316 if (chara == null || !chara.IsAliveInCurrentZone)
317 {
318 chara = owner.FindMaster();
319 }
320 if (chara != null && chara.IsAliveInCurrentZone)
321 {
322 if (owner.enemy == null)
323 {
324 owner.SetEnemy(chara.enemy);
325 }
326 int num4 = owner.Dist(chara.pos);
327 if (owner.source.aiIdle != "root" && num4 > EClass.game.config.tactics.AllyDistance(owner) && EClass._zone.PetFollow && owner.c_minionType == MinionType.Default)
328 {
329 if (owner.HasAccess(chara.pos))
330 {
331 owner.TryMoveTowards(chara.pos);
332 }
333 yield return KeepRunning();
334 continue;
335 }
336 }
337 }
338 Party party = owner.party;
339 if (party == null || party.leader == owner || !party.leader.IsAliveInCurrentZone || owner.host != null || !EClass._zone.PetFollow)
340 {
341 break;
342 }
343 if (owner.source.aiIdle == "root")
344 {
345 yield return KeepRunning();
346 continue;
347 }
349 {
350 yield return KeepRunning();
351 continue;
352 }
353 if (owner.HasAccess(party.leader.pos) && owner.TryMoveTowards(party.leader.pos) == Card.MoveResult.Fail && owner.Dist(party.leader) > 4)
354 {
356 bool flag3 = (EClass._zone is Zone_Civilized || EClass._zone.IsPCFaction) && (EClass.pc.enemy == null || !EClass.pc.enemy.IsAliveInCurrentZone);
357 if (moveFailCount >= (flag3 ? 100 : 10))
358 {
359 owner.Teleport(party.leader.pos.GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: true, ignoreCenter: true), silent: false, force: true);
360 moveFailCount = 0;
361 }
362 }
363 else
364 {
365 moveFailCount = 0;
366 }
367 yield return KeepRunning();
368 }
369 if (EClass._zone.IsNefia && EClass._zone.Boss == owner && EClass.rnd(20) == 0)
370 {
372 }
373 if (EClass._zone.IsRegion && EClass.rnd(10) != 0)
374 {
375 yield return Restart();
376 }
377 if (((owner.homeBranch != null && owner.homeBranch == EClass.Branch && EClass.rnd(100) == 0) || (owner.IsGuest() && EClass.rnd(50) == 0)) && owner.FindBed() == null)
378 {
380 }
381 string text;
382 if (!EClass._zone.IsRegion)
383 {
384 text = owner.id;
385 if (!(text == "geist"))
386 {
387 if (text == "mech_scarab" && EClass.rnd(20) == 0 && owner.CanDuplicate() && !EClass._zone.IsUserZone)
388 {
389 int i = 0;
390 owner.pos.ForeachNeighbor(delegate(Point p)
391 {
392 if (p.HasChara && p.FirstChara.id == "mech_scarab")
393 {
394 i++;
395 }
396 });
397 if (i < 2)
398 {
399 Point randomPoint = owner.pos.GetRandomPoint(1, requireLos: false, allowChara: false, allowBlocked: false, 20);
400 if (randomPoint != null)
401 {
402 Card c2 = EClass._zone.AddCard(owner.Duplicate(), randomPoint);
403 if (randomPoint.Distance(EClass.pc.pos) < EClass.pc.GetHearingRadius())
404 {
405 Msg.Say("self_dupe", owner, c2);
406 }
407 }
408 }
409 }
410 }
411 else if (EClass.rnd(20) == 0)
412 {
413 Point nearestPoint = EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: false);
414 if (nearestPoint != null)
415 {
416 foreach (Chara item3 in nearestPoint.ListCharasInRadius(owner, 6, (Chara _c) => _c != owner && !_c.IsPCFactionOrMinion))
417 {
418 item3.Teleport(nearestPoint.GetNearestPoint(allowBlock: false, allowChara: false) ?? nearestPoint);
419 }
420 if (owner != null)
421 {
423 {
424 EClass.pc.ai.Cancel();
425 }
426 owner.Teleport(nearestPoint);
427 }
428 yield return Success();
429 }
430 }
431 }
432 if (owner.IsMinion && owner.master != null && owner.master.id == "keeper_garden" && !(owner.master.ai is GoalCombat))
433 {
435 yield return Success();
436 }
438 {
439 Room room = owner.pos.cell.room;
440 if (room != null)
441 {
442 Point point = null;
443 if (owner.memberType == FactionMemberType.Guest && room.data.accessType != 0)
444 {
445 point = FindMovePoint(BaseArea.AccessType.Public);
446 }
447 else if (owner.memberType == FactionMemberType.Default && room.data.accessType == BaseArea.AccessType.Private)
448 {
449 point = FindMovePoint(BaseArea.AccessType.Resident) ?? FindMovePoint(BaseArea.AccessType.Public);
450 }
451 if (point != null)
452 {
453 yield return DoGoto(point);
454 }
455 }
456 }
458 {
459 if (owner.IsPCFaction && owner.GetInt(32) + 4320 < EClass.world.date.GetRaw())
460 {
461 if (owner.GetInt(32) != 0 && Zone.okaerinko < 10)
462 {
463 owner.Talk("welcomeBack");
464 Zone.okaerinko++;
465 }
467 }
469 {
470 if (EClass.rnd(5) == 0 && owner.hostility >= Hostility.Neutral && EClass.pc.IsPCC && EClass.pc.pccData.state == PCCState.Undie && !EClass.pc.pos.cell.IsTopWaterAndNoSnow)
471 {
472 owner.Talk("pervert3");
473 }
474 else if (EClass.rnd(15) == 0 && EClass._zone.IsTown && owner.hostility >= Hostility.Neutral && !owner.IsPCFaction && !EClass.pc.HasCondition<ConIncognito>())
475 {
476 bool flag4 = EClass._zone is Zone_Derphy;
477 string text2 = ((EClass.player.karma > 10) ? ((EClass.player.karma < 90) ? "" : (flag4 ? "rumor_bad" : "rumor_good")) : (flag4 ? "rumor_good" : "rumor_bad"));
478 if (!text2.IsEmpty())
479 {
480 owner.Talk(text2);
481 }
482 if ((flag4 ? (EClass.player.karma >= 90) : (EClass.player.karma <= 10)) && EClass.rnd(10) == 0)
483 {
484 Thing t2 = ThingGen.Create("stone");
485 AI_PlayMusic.ignoreDamage = true;
487 AI_PlayMusic.ignoreDamage = false;
488 }
489 }
490 else
491 {
492 owner.TalkTopic("fov");
493 }
494 owner.turnLastSeen = EClass.player.stats.turns;
495 }
496 }
497 if (EClass.rnd(25) == 0 && owner.IsInMutterDistance())
498 {
500 {
501 owner.PlayAnime(AnimeID.Shiver);
502 }
504 if (tC == null || tC.pop.items.Count == 0)
505 {
506 if (owner.noMove)
507 {
508 foreach (Thing thing10 in owner.pos.Things)
509 {
510 if (thing10.IsInstalled && thing10.trait is TraitGeneratorWheel)
511 {
512 owner.Talk("labor");
513 owner.PlayAnime(AnimeID.Shiver);
514 yield return Restart();
515 }
516 }
517 }
518 if (owner.isDrunk && (owner.race.id == "cat" || owner.id == "sailor"))
519 {
520 owner.Talk("drunk_cat");
521 }
522 else if (owner.isRestrained)
523 {
524 owner.Talk("restrained");
525 }
526 else if (owner.GetInt(106) == 0 && !owner.IsPCParty)
527 {
528 if (owner.HasElement(1232) && EClass.rnd(4) == 0)
529 {
530 owner.Talk("baby");
531 }
532 else if (EClass.rnd((owner.host == null) ? 2 : 10) == 0 && owner.isSynced && owner.TalkTopic().IsEmpty())
533 {
534 owner.Talk(owner.pos.IsHotSpring ? "hotspring" : "idle");
535 }
536 }
537 }
538 }
539 if (EClass.rnd(8) == 0 && owner.race.id == "chicken")
540 {
541 owner.PlaySound("Animal/Chicken/chicken");
542 }
543 if (EClass.rnd(80) == 0 && owner.race.id == "cat")
544 {
545 owner.PlaySound("Animal/Cat/cat");
546 }
547 if (owner.trait.IdAmbience != null && owner.IsInMutterDistance(15))
548 {
549 float mtp = 1f;
550 Room room2 = owner.Cell.room;
551 Room room3 = EClass.pc.Cell.room;
552 if (room2 != room3 && room3 != null)
553 {
554 mtp = ((room2?.lot != room3?.lot) ? 0.4f : 0.7f);
555 }
556 EClass.Sound.PlayAmbience(owner.trait.IdAmbience, owner.pos.Position(), mtp);
557 }
558 if (EClass.rnd(2000) == 0 && owner.IsHuman && (owner.host == null || owner.host.ride != owner))
559 {
560 Thing thing4 = owner.things.Find((Thing a) => !a.IsNegativeGift && a.trait.CanDrink(owner), recursive: false);
561 if (thing4 != null && thing4.trait is TraitPotion && owner.IsPCParty)
562 {
563 thing4 = null;
564 }
565 bool flag5 = EClass.Branch != null && EClass.Branch.policies.IsActive(2503);
566 if (owner.homeBranch != null && owner.homeBranch.policies.IsActive(2503))
567 {
568 flag5 = true;
569 }
570 if (thing4 == null && !flag5)
571 {
572 thing4 = ThingGen.Create("crimAle");
573 owner.Drink(thing4);
574 }
575 if (thing4 != null && !thing4.isDestroyed)
576 {
577 owner.TryUse(thing4);
578 yield return Restart();
579 }
580 }
581 if (EClass.rnd(owner.IsPCParty ? 1000 : 200) == 0 && owner.isDrunk && (owner.isSynced || EClass.rnd(5) == 0))
582 {
583 DoSomethingToCharaInRadius(3, null, delegate(Chara c)
584 {
585 owner.Say("drunk_mess", owner, c);
586 owner.Talk("drunk_mess");
587 bool flag6 = EClass.rnd(5) == 0 && !c.IsPC;
588 if (c.IsPCParty && owner.hostility >= Hostility.Friend)
589 {
590 flag6 = false;
591 }
592 if (flag6)
593 {
594 owner.Say("drunk_counter", c, owner);
595 c.Talk("drunk_counter");
597 }
598 });
599 }
600 if (EClass.rnd(100) == 0 && owner.trait.CanFish && owner.stamina.value > 0)
601 {
602 Point fishingPoint = AI_Fish.GetFishingPoint(owner.pos);
603 if (fishingPoint.IsValid)
604 {
605 yield return Do(new AI_Fish
606 {
607 pos = fishingPoint
608 });
609 }
610 }
611 string idAct = owner.source.actIdle.RandomItem();
612 if (EClass.rnd(EClass.world.date.IsNight ? 1500 : 15000) == 0 && !owner.IsPCFaction && !owner.noMove)
613 {
614 owner.AddCondition<ConSleep>(1000 + EClass.rnd(1000), force: true);
615 }
616 if (!owner.noMove)
617 {
618 if (EClass.rnd(3) == 0 && owner.IsCat)
619 {
620 Chara chara2 = ((EClass.rnd(5) == 0) ? EClass.pc.party.members.RandomItem() : EClass._map.charas.RandomItem());
621 Thing thing5 = chara2.things.Find<TraitFoodChuryu>();
622 if (chara2 != owner && thing5 != null)
623 {
624 yield return Do(new AI_Churyu
625 {
626 churyu = thing5,
627 slave = chara2
628 });
629 }
630 }
631 if (EClass.rnd(100) == 0 && (owner.HasHobbyOrWork("Pet") || owner.HasHobbyOrWork("Fluffy")))
632 {
633 yield return Do(new AI_Mofu());
634 }
635 }
636 if (EClass.rnd((owner.host != null && owner.GetInt(106) != 0) ? 1000 : 40) == 0 && owner.IsHuman)
637 {
638 DoSomethingToNearChara((Chara c) => (!c.IsPCParty || EClass.rnd(5) == 0) && c.IsMofuable && !owner.IsHostile(c) && !c.IsInCombat && owner.CanSee(c), delegate(Chara c)
639 {
640 owner.Cuddle(c);
641 });
642 yield return KeepRunning();
643 }
644 if (EClass.rnd(100) == 0 && owner.trait is TraitBitch)
645 {
646 Chara chara3 = DoSomethingToNearChara((Chara c) => c.IsIdle && !c.IsPCParty && !(c.trait is TraitBitch) && c.Evalue(418) <= 0);
647 if (chara3 != null)
648 {
649 yield return Do(new AI_Fuck
650 {
651 target = chara3,
652 bitch = true
653 });
654 }
655 }
656 if (EClass.rnd(50) == 0 && owner.trait is TraitBard)
657 {
658 yield return Do(new AI_PlayMusic());
659 }
660 if (EClass.rnd(4) == 0 && TryPerformIdleUse())
661 {
662 yield return Restart();
663 }
664 if (EClass.rnd(20) == 0 && owner.trait.IdleAct())
665 {
666 yield return Restart();
667 }
668 if (idAct == "janitor" && EClass.rnd(5) == 0)
669 {
670 DoSomethingToCharaInRadius(4, null, delegate(Chara c)
671 {
672 if (c.HasElement(1211) && !(EClass._zone is Zone_Casino))
673 {
674 owner.Talk("snail");
675 Thing t4 = ThingGen.Create("1142");
676 ActThrow.Throw(owner, c.pos, t4);
677 }
678 });
679 yield return Restart();
680 }
682 {
683 TraitShackle traitShackle2 = owner.pos.FindThing<TraitShackle>();
684 if (traitShackle2 != null && traitShackle2.AllowTraining)
685 {
687 {
688 shackle = traitShackle2
689 });
690 yield return Restart();
691 }
692 }
693 if (!owner.IsPCFactionOrMinion && EClass.rnd(owner.isSynced ? 50 : 2000) == 0 && owner.hostility == Hostility.Neutral && EClass.pc.party.HasElement(1563) && !owner.race.tag.Contains("animal") && EClass._zone.IsTown && !EClass._zone.IsPCFaction && !owner.HasCondition<ConIncognito>())
694 {
696 }
697 if (EClass.rnd(200) == 0 && !owner.noMove)
698 {
699 Point cleanPoint = AI_Clean.GetCleanPoint(owner, 4);
700 if (cleanPoint != null)
701 {
702 yield return Do(new AI_Clean
703 {
704 pos = cleanPoint
705 });
706 }
707 }
708 if (EClass.rnd(35) == 0 && owner.id == "child" && owner.pos.cell.IsSnowTile)
709 {
710 foreach (Chara chara4 in EClass._map.charas)
711 {
712 if (EClass.rnd(3) != 0 && chara4 != owner && chara4.pos.cell.IsSnowTile && chara4.Dist(owner) <= 6 && Los.IsVisible(chara4, owner))
713 {
714 Thing t3 = ThingGen.Create("snow");
715 ActThrow.Throw(owner, chara4.pos, t3);
716 break;
717 }
718 }
719 }
720 if (EClass.rnd(EClass.debug.enable ? 3 : 30) == 0)
721 {
722 Thing thing6 = owner.things.Find<TraitBall>();
723 if (thing6 == null)
724 {
726 {
727 owner.pos.ForeachNeighbor(delegate(Point p)
728 {
729 Card card2 = p.FindThing<TraitBall>()?.owner;
730 if (card2 != null)
731 {
732 owner.Pick(card2.Thing);
733 }
734 });
735 }
736 }
737 else
738 {
739 foreach (Chara chara5 in EClass._map.charas)
740 {
741 if (EClass.rnd(3) != 0 && chara5 != owner && chara5.Dist(owner) <= 6 && chara5.Dist(owner) >= 3 && Los.IsVisible(chara5, owner))
742 {
743 ActThrow.Throw(owner, chara5.pos, thing6);
744 break;
745 }
746 }
747 }
748 }
749 if (EClass.rnd(20) == 0 && AI_Shopping.TryShop(owner, realtime: true))
750 {
751 yield return Restart();
752 }
753 if (EClass.rnd(20) == 0 && owner.IsPCFaction && AI_Shopping.TryRestock(owner, realtime: true))
754 {
755 yield return Restart();
756 }
758 if (owner.idleActTimer <= 0 && !owner.source.actIdle.IsEmpty())
759 {
760 owner.idleActTimer = 10 + EClass.rnd(50);
761 switch (idAct)
762 {
763 case "torture_snail":
764 DoSomethingToNearChara((Chara c) => c.race.id == "snail", delegate(Chara c)
765 {
766 owner.Say("use_whip3", owner, c);
767 owner.PlaySound("whip");
768 owner.Talk("insult");
769 c.PlayAnime(AnimeID.Shiver);
770 c.OnInsulted();
771 });
772 break;
773 case "buffMage":
774 if (EClass.rnd(2) == 0)
775 {
776 TryCast<ConHolyVeil>(EffectId.HolyVeil, 300 + EClass.rnd(300));
777 }
778 else
779 {
780 TryCast<ConLevitate>(EffectId.Levitate, 300 + EClass.rnd(300));
781 }
782 break;
783 case "buffThief":
784 TryCast<ConNightVision>(EffectId.CatsEye, 100 + EClass.rnd(100));
785 break;
786 case "buffGuildWatch":
787 TryCast<ConGravity>(EffectId.Gravity, 300 + EClass.rnd(300));
788 break;
789 case "buffHealer":
790 TryCast(EffectId.Heal);
791 break;
792 case "readBook":
793 {
794 if (EClass.rnd(2) == 0 || (owner.IsPCParty && EClass.rnd(20) != 0))
795 {
796 break;
797 }
798 List<Thing> list3 = owner.things.List((Thing a) => a.parent == owner && (a.category.id == "spellbook" || a.category.id == "ancientbook" || a.category.id == "skillbook"), onlyAccessible: true);
799 Thing thing7 = null;
800 if (list3.Count > 0)
801 {
802 thing7 = list3.RandomItem();
803 if (!thing7.trait.CanRead(owner))
804 {
805 thing7 = null;
806 }
807 }
808 if (thing7 == null)
809 {
810 if (owner.things.IsFull())
811 {
812 break;
813 }
814 thing7 = ThingGen.CreateFromCategory((EClass.rnd(5) != 0) ? "spellbook" : "ancientbook");
815 thing7.isNPCProperty = true;
816 }
817 if (!(thing7.id == "1084") || !owner.IsPCFaction)
818 {
819 if (!owner.HasElement(285))
820 {
821 owner.elements.ModBase(285, 1);
822 }
823 yield return Do(new AI_Read
824 {
825 target = thing7
826 });
827 }
828 break;
829 }
830 default:
831 if (LangGame.Has("idle_" + idAct))
832 {
833 IdleActText(idAct);
834 }
835 break;
836 }
837 yield return Restart();
838 }
839 if (owner.host != null)
840 {
841 yield return Restart();
842 }
844 {
846 {
847 yield return DoGoto(owner.orgPos);
848 }
849 yield return Restart();
850 }
852 {
853 yield return DoGoto(EClass.pc);
854 }
855 if (EClass.rnd(100) == 0 && !owner.IsPCFaction)
856 {
857 if (owner.id == "ashland" || owner.id == "fiama")
858 {
860 if (card != null)
861 {
862 yield return DoGotoSpot(card);
863 }
864 else
865 {
866 Room room4 = owner.FindRoom();
867 if (room4 != null)
868 {
869 yield return DoGoto(room4.GetRandomPoint().GetNearestPoint());
870 }
871 }
872 }
874 {
875 yield return DoGoto(owner.orgPos, 0, ignoreConnection: false, delegate
876 {
877 if (!EClass._zone.IsPCFaction)
878 {
879 owner.Teleport(owner.orgPos, silent: false, force: true);
880 }
881 return Status.Success;
882 });
883 }
884 }
885 if (EClass.rnd(100) == 0 && owner.id == "bee")
886 {
887 Thing thing8 = EClass._map.ListThing<TraitBeekeep>()?.RandomItem();
888 if (thing8 != null)
889 {
890 yield return DoGoto(thing8.pos);
891 }
892 }
893 if (EClass.rnd(10) == 0 && !EClass._zone.IsUnderwater && (owner.race.tag.Contains("water") || owner.source.tag.Contains("water")) && !owner.pos.IsDeepWater)
894 {
895 for (int k = 0; k < 100; k++)
896 {
897 Point randomPoint2 = EClass._map.GetRandomPoint();
898 if (randomPoint2.IsDeepWater && !randomPoint2.IsBlocked)
899 {
900 yield return DoGoto(randomPoint2);
901 break;
902 }
903 }
904 }
905 text = owner.source.aiIdle;
906 if (!(text == "stand") && !(text == "root"))
907 {
908 if (EClass.rnd(15) == 0)
909 {
911 }
912 if (owner == null)
913 {
914 yield return Cancel();
915 }
916 }
917 if (EClass._zone.IsPCFaction && owner.IsPCFaction && !owner.IsPCParty && (owner.GetWork("Clean") != null || owner.GetWork("Chore") != null) && !(EClass.pc.ai is AI_UseCrafter))
918 {
919 AI_Haul aI_Haul = AI_Haul.TryGetAI(owner);
920 if (aI_Haul != null)
921 {
922 yield return Do(aI_Haul);
923 }
924 }
925 yield return Restart();
926 Point FindMovePoint(BaseArea.AccessType type)
927 {
928 for (int l = 0; l < 20; l++)
929 {
930 Point randomPoint3 = owner.pos.GetRandomPoint(5 + l, requireLos: false);
931 if (randomPoint3 != null && randomPoint3.IsInBounds && (randomPoint3.cell.room == null || randomPoint3.cell.room.data.accessType == type))
932 {
933 return randomPoint3;
934 }
935 }
936 return null;
937 }
938 }
AnimeID
Definition: AnimeID.cs:2
AttackSource
Definition: AttackSource.cs:2
ClearInventoryType
EditorTag
Definition: EditorTag.cs:2
EffectId
Definition: EffectId.cs:2
FactionMemberType
Hostility
Definition: Hostility.cs:2
MinionType
Definition: MinionType.cs:2
ThrowMethod
Definition: ThrowMethod.cs:2
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
Status Do(AIAct _seq, Func< Status > _onChildFail=null)
Definition: AIAct.cs:416
virtual Status Cancel()
Definition: AIAct.cs:291
Status
Definition: AIAct.cs:8
Status DoGotoSpot(Card card, Func< Status > _onChildFail=null)
Definition: AIAct.cs:461
Status DoGoto(Point pos, int dist=0, bool ignoreConnection=false, Func< Status > _onChildFail=null)
Definition: AIAct.cs:432
Status KeepRunning()
Definition: AIAct.cs:321
Status Restart()
Definition: AIAct.cs:237
static Point GetCleanPoint(Chara c, int r=-1, int tries=10)
Definition: AI_Clean.cs:9
Definition: AI_Eat.cs:5
static Point GetFishingPoint(Point p)
Definition: AI_Fish.cs:276
static AI_Haul TryGetAI(Chara c)
Definition: AI_Haul.cs:76
Chara DoSomethingToNearChara(Func< Chara, bool > funcPickChara, Action< Chara > action=null)
Definition: AI_Idle.cs:977
int moveFailCount
Definition: AI_Idle.cs:16
Chara DoSomethingToCharaInRadius(int radius, Func< Chara, bool > funcPickChara, Action< Chara > action=null)
Definition: AI_Idle.cs:996
void IdleActText(string id)
Definition: AI_Idle.cs:940
bool TryPerformIdleUse()
Definition: AI_Idle.cs:1015
void TryCast(EffectId id, int power=100)
Definition: AI_Idle.cs:958
Behaviour
Definition: AI_Idle.cs:9
static bool TryRestock(Chara c, bool realtime)
Definition: AI_Shopping.cs:94
static bool TryShop(Chara c, bool realtime)
Definition: AI_Shopping.cs:10
List< Item > items
Definition: ActList.cs:14
static EffectIRenderer Throw(Card c, Point p, Thing t, ThrowMethod method=ThrowMethod.Default, float failChance=0f)
Definition: ActThrow.cs:97
Definition: ACT.cs:62
BaseArea.AccessType accessType
Definition: AreaData.cs:42
AccessType
Definition: BaseArea.cs:9
AreaData data
Definition: BaseArea.cs:29
virtual Point GetRandomPoint(bool walkable=true, bool allowChara=true)
Definition: BaseArea.cs:88
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
void SetInt(int id, int value=0)
Definition: BaseCard.cs:39
GlobalCharaList globalCharas
Definition: CardManager.cs:46
TC GetTC(string id)
Definition: Card.cs:11
bool isDestroyed
Definition: Card.cs:75
bool IsPCFactionOrMinion
Definition: Card.cs:2260
void Teleport(Point point, bool silent=false, bool force=false)
Definition: Card.cs:5784
ElementContainerCard elements
Definition: Card.cs:41
string id
Definition: Card.cs:35
bool IsRestrainedResident
Definition: Card.cs:2246
bool HasElement(int ele, int req=1)
Definition: Card.cs:5845
bool isRestrained
Definition: Card.cs:566
CardRenderer HostRenderer
Definition: Card.cs:2430
int GetHearingRadius()
Definition: Card.cs:6322
int c_uidMaster
Definition: Card.cs:1449
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:3085
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
Definition: Card.cs:6632
int hp
Definition: Card.cs:242
ICardParent parent
Definition: Card.cs:55
bool ExistsOnMap
Definition: Card.cs:2073
int GetCurrency(string id="money")
Definition: Card.cs:3924
bool IsInMutterDistance(int d=10)
Definition: Card.cs:7622
Trait trait
Definition: Card.cs:53
void ModCurrency(int a, string id="money")
Definition: Card.cs:3910
int encLV
Definition: Card.cs:326
bool IsEquipment
Definition: Card.cs:2161
void DamageHP(long dmg, AttackSource attackSource=AttackSource.None, Card origin=null)
Definition: Card.cs:4012
void ModEncLv(int a)
Definition: Card.cs:3795
bool c_isImportant
Definition: Card.cs:1024
MoveResult
Definition: Card.cs:13
bool noMove
Definition: Card.cs:770
bool HasEditorTag(EditorTag tag)
Definition: Card.cs:2588
ThingContainer things
Definition: Card.cs:38
bool IsInstalled
Definition: Card.cs:2369
virtual Thing Thing
Definition: Card.cs:2046
int Evalue(int ele)
Definition: Card.cs:2559
int Dist(Card c)
Definition: Card.cs:7578
bool isGifted
Definition: Card.cs:782
Cell Cell
Definition: Card.cs:2043
int Num
Definition: Card.cs:158
void PlayAnime(AnimeID id, bool force=false)
Definition: Card.cs:6096
SourceCategory.Row category
Definition: Card.cs:2037
void ModNum(int a, bool notify=true)
Definition: Card.cs:3464
Room room
Definition: Cell.cs:102
bool IsSnowTile
Definition: Cell.cs:782
bool IsTopWaterAndNoSnow
Definition: Cell.cs:712
bool HasFire
Definition: Cell.cs:676
ActList list
Definition: CharaAbility.cs:12
bool Has(int id)
void OnInsulted()
Definition: Chara.cs:8037
bool UseAbility(string idAct, Card tc=null, Point pos=null, bool pt=false)
Definition: Chara.cs:5746
bool HasHobbyOrWork(string alias)
Definition: Chara.cs:8680
override bool IsAliveInCurrentZone
Definition: Chara.cs:559
Thing FindBestFoodToEat()
Definition: Chara.cs:7424
new TraitChara trait
Definition: Chara.cs:501
Card held
Definition: Chara.cs:70
AIAct ai
Definition: Chara.cs:200
bool TryUse(Thing t)
Definition: Chara.cs:7748
void Cuddle(Chara c, bool headpat=false)
Definition: Chara.cs:6168
int sharedCheckTurn
Definition: Chara.cs:118
void InstantEat(Thing t=null, bool sound=true)
Definition: Chara.cs:7445
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:9089
Faction faction
Definition: Chara.cs:425
override bool IsPC
Definition: Chara.cs:610
bool isDrunk
Definition: Chara.cs:124
Chara host
Definition: Chara.cs:33
Chara GetNearbyCatToSniff()
Definition: Chara.cs:7948
bool CanSeeLos(Card c, int dist=-1)
Definition: Chara.cs:1248
bool IsMofuable
Definition: Chara.cs:1097
override bool IsPCParty
Definition: Chara.cs:613
Party party
Definition: Chara.cs:43
bool IsInCombat
Definition: Chara.cs:862
TraitBed TryAssignBed()
Definition: Chara.cs:7225
void PickHeld(bool msg=false)
Definition: Chara.cs:4459
bool HasCondition(string alias)
Definition: Chara.cs:9246
void Banish(Chara owner)
Definition: Chara.cs:2316
AIAct SetAI(AIAct g)
Definition: Chara.cs:8719
bool IsIdle
Definition: Chara.cs:851
TraitBed FindBed()
Definition: Chara.cs:7213
Stats hunger
Definition: Chara.cs:1140
override bool IsMinion
Definition: Chara.cs:625
override bool isSynced
Definition: Chara.cs:689
Point orgPos
Definition: Chara.cs:21
bool IsHuman
Definition: Chara.cs:877
bool MoveRandom()
Definition: Chara.cs:2562
void TryPutSharedItems(IEnumerable< Thing > containers, bool msg=true)
Definition: Chara.cs:7243
override bool IsPCFaction
Definition: Chara.cs:669
bool HasAccess(Card c)
Definition: Chara.cs:1278
bool CanEat(Thing t, bool shouldEat=false)
Definition: Chara.cs:7470
Chara Duplicate()
Definition: Chara.cs:1769
override int MaxHP
Definition: Chara.cs:706
bool CanDuplicate()
Definition: Chara.cs:1752
void ClearInventory(ClearInventoryType type)
Definition: Chara.cs:8395
SourceChara.Row source
Definition: Chara.cs:156
Stats mana
Definition: Chara.cs:1152
FactionMemberType memberType
Definition: Chara.cs:46
string TalkTopic(string topic="calm")
Definition: Chara.cs:6864
Stats stamina
Definition: Chara.cs:1144
bool MoveNeighborDefinitely()
Definition: Chara.cs:2576
Chara parasite
Definition: Chara.cs:30
Chara master
Definition: Chara.cs:88
bool IsGuest()
Definition: Chara.cs:6520
Hobby GetWork(string id)
Definition: Chara.cs:8830
Thing nextUse
Definition: Chara.cs:100
MoveResult TryMoveTowards(Point p)
Definition: Chara.cs:2602
Religion faith
Definition: Chara.cs:437
Chara enemy
Definition: Chara.cs:86
CharaAbility ability
Definition: Chara.cs:422
Chara FindMaster()
Definition: Chara.cs:2371
Chara SetEnemy(Chara c=null)
Definition: Chara.cs:6207
void DoHostileAction(Card _tg, bool immediate=false)
Definition: Chara.cs:6256
Room FindRoom()
Definition: Chara.cs:7804
Point GetDestination()
Definition: Chara.cs:7132
int turnLastSeen
Definition: Chara.cs:110
FactionBranch homeBranch
Definition: Chara.cs:1064
void Drink(Card t)
Definition: Chara.cs:5027
Hostility hostility
Definition: Chara.cs:289
bool IsHostile()
Definition: Chara.cs:6433
void TryTakeSharedItems(bool msg=true)
Definition: Chara.cs:7281
PCCData pccData
Definition: Chara.cs:67
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
Definition: Chara.cs:4243
void Sniff(Chara c)
Definition: Chara.cs:7960
override bool IsPCC
Definition: Chara.cs:680
int idleActTimer
Definition: Chara.cs:112
bool IsCat
Definition: Chara.cs:985
SourceRace.Row race
Definition: Chara.cs:462
Definition: ConHOT.cs:4
int AllyDistance(Chara c)
bool enable
Definition: CoreDebug.cs:286
int GetRaw(int offsetHours=0)
Definition: Date.cs:322
bool IsNight
Definition: Date.cs:112
static Game game
Definition: EClass.cs:8
static Zone _zone
Definition: EClass.cs:20
static World world
Definition: EClass.cs:40
static int rnd(long a)
Definition: EClass.cs:58
static FactionBranch Branch
Definition: EClass.cs:22
static int rndHalf(int a)
Definition: EClass.cs:87
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
static SoundManager Sound
Definition: EClass.cs:46
Dictionary< int, Element > dict
Element ModTempPotential(int ele, int v, int threshMsg=0)
Element ModBase(int ele, int v)
int ValueWithoutLink
Definition: ELEMENT.cs:294
SourceElement.Row source
Definition: ELEMENT.cs:273
int vTempPotential
Definition: ELEMENT.cs:258
Act act
Definition: ELEMENT.cs:394
Thing GetMeal(Chara c)
List< Chara > members
PolicyManager policies
ConfigTactics tactics
Definition: Game.cs:90
ReligionManager religions
Definition: Game.cs:158
CardManager cards
Definition: Game.cs:155
Config config
Definition: Game.cs:218
static bool Has(string id)
Definition: LangGame.cs:46
static string _currency(object a, string IDCurrency)
Definition: Lang.cs:162
static LayerCraft Instance
Definition: LayerCraft.cs:8
static LayerDragGrid Instance
Definition: Los.cs:5
static bool IsVisible(Point p1, Point p2, Action< Point, bool > _onVisit=null)
Definition: Los.cs:167
Point GetRandomPoint(Point center, int radius, int tries=100, bool mustBeWalkable=true, bool requireLos=true)
Definition: Map.cs:2215
PropsInstalled Installed
Definition: Map.cs:123
PropsManager props
Definition: Map.cs:91
List< Chara > charas
Definition: Map.cs:81
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
Definition: Party.cs:7
bool HasElement(int ele, bool excludePC=false)
Definition: Party.cs:194
int EvalueTotal(int ele, Func< Chara, bool > funcIf=null)
Definition: Party.cs:181
Chara leader
Definition: Party.cs:31
List< Chara > members
Definition: Party.cs:19
int turns
Definition: Player.cs:84
int karma
Definition: Player.cs:878
Stats stats
Definition: Player.cs:1016
Definition: Point.cs:9
ref Vector3 Position(int height)
Definition: Point.cs:536
void ForeachNeighbor(Action< Point > action, bool diagonal=true)
Definition: Point.cs:1385
bool IsBlocked
Definition: Point.cs:351
List< Thing > Things
Definition: Point.cs:326
Point GetNearestPoint(bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false, int minRadius=0)
Definition: Point.cs:607
bool Equals(int _x, int _z)
Definition: Point.cs:948
bool IsValid
Definition: Point.cs:88
int Distance(Point p)
Definition: Point.cs:977
Chara FirstChara
Definition: Point.cs:276
bool IsInBounds
Definition: Point.cs:104
Cell cell
Definition: Point.cs:51
Thing FindThing(Func< Thing, bool > func)
Definition: Point.cs:1128
bool HasChara
Definition: Point.cs:226
bool IsHotSpring
Definition: Point.cs:363
bool IsDeepWater
Definition: Point.cs:264
Point GetRandomPoint(int radius, bool requireLos=true, bool allowChara=true, bool allowBlocked=false, int tries=100)
Definition: Point.cs:757
bool IsActive(int id, int days=-1)
List< PopItem > items
Definition: PopManager.cs:34
PropsInstalled installed
Definition: PropsManager.cs:8
TraitManager traits
Definition: Props.cs:18
Thing Find(int uid)
Definition: Props.cs:389
ReligionHarmony Harmony
Definition: Room.cs:4
Lot lot
Definition: Room.cs:21
virtual bool IsRegion
Definition: Spatial.cs:515
virtual void Mod(int a)
Definition: Stats.cs:135
override int GetPhase()
Definition: Stats.cs:117
virtual int value
Definition: Stats.cs:56
virtual int max
Definition: Stats.cs:68
Definition: TCText.cs:6
PopManager pop
Definition: TCText.cs:9
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
Thing Find(int uid)
bool IsFull(int y=0)
static Thing CreateFromCategory(string idCat, int lv=-1)
Definition: ThingGen.cs:75
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
bool IsSharedContainer
Definition: Thing.cs:112
virtual AI_Idle.Behaviour IdleBehaviour
Definition: TraitChara.cs:17
virtual string IdAmbience
Definition: TraitChara.cs:135
virtual bool CanFish
Definition: TraitChara.cs:137
virtual bool IdleAct()
Definition: TraitChara.cs:139
TraitMap restSpots
Definition: TraitManager.cs:10
virtual bool AllowTraining
Definition: TraitShackle.cs:13
virtual bool CanRead(Chara c)
Definition: Trait.cs:968
virtual bool CanEat(Chara c)
Definition: Trait.cs:977
virtual bool CanDrink(Chara c)
Definition: Trait.cs:986
GameDate date
Definition: World.cs:6
Definition: Zone.cs:12
static int okaerinko
Definition: Zone.cs:31
virtual bool IsNefia
Definition: Zone.cs:282
FactionBranch branch
Definition: Zone.cs:34
virtual bool IsUserZone
Definition: Zone.cs:268
Chara Boss
Definition: Zone.cs:83
virtual bool IsTown
Definition: Zone.cs:220
virtual bool PetFollow
Definition: Zone.cs:284
bool IsPCFaction
Definition: Zone.cs:470
virtual bool IsUnderwater
Definition: Zone.cs:266
Card AddCard(Card t, Point point)
Definition: Zone.cs:1959

References Lang._currency(), EClass._map, EClass._zone, Chara.ability, AreaData.accessType, Element.act, Zone.AddCard(), Chara.AddCondition(), Card.AddThing(), Chara.ai, TraitShackle.AllowTraining, ConfigTactics.AllyDistance(), Chara.Banish(), Zone.Boss, EClass.Branch, Zone.branch, Card.c_isImportant, Card.c_uidMaster, AIAct.Cancel(), Trait.CanDrink(), Chara.CanDuplicate(), Trait.CanEat(), Chara.CanEat(), TraitChara.CanFish, Trait.CanRead(), Chara.CanSee(), Chara.CanSeeLos(), card, Game.cards, Card.category, Card.Cell, Point.cell, Map.charas, Chara.ClearInventory(), Game.config, ThingGen.Create(), ThingGen.CreateFromCategory(), Chara.Cuddle(), Card.DamageHP(), BaseArea.data, World.date, EClass.debug, ElementContainer.dict, Card.Dist(), Point.Distance(), AIAct.Do(), AIAct.DoGoto(), AIAct.DoGotoSpot(), Chara.DoHostileAction(), DoSomethingToCharaInRadius(), DoSomethingToNearChara(), Chara.Drink(), Chara.Duplicate(), Card.elements, CoreDebug.enable, Card.encLV, Chara.enemy, Point.Equals(), Card.Evalue(), Party.EvalueTotal(), Card.ExistsOnMap, Chara.faction, Chara.faith, Props.Find(), ThingContainer.Find(), Chara.FindBed(), Chara.FindBestFoodToEat(), Chara.FindMaster(), Chara.FindRoom(), Point.FindThing(), Point.FirstChara, Point.ForeachNeighbor(), EClass.game, AI_Clean.GetCleanPoint(), Card.GetCurrency(), Chara.GetDestination(), AI_Fish.GetFishingPoint(), Card.GetHearingRadius(), BaseCard.GetInt(), FactionBranch.GetMeal(), Chara.GetNearbyCatToSniff(), Point.GetNearestPoint(), Stats.GetPhase(), BaseArea.GetRandomPoint(), Point.GetRandomPoint(), Date.GetRaw(), CardRenderer.GetTC(), CardManager.globalCharas, ReligionManager.Harmony, CharaAbility.Has(), LangGame.Has(), Chara.HasAccess(), Point.HasChara, Chara.HasCondition(), Card.HasEditorTag(), Party.HasElement(), Card.HasElement(), Cell.HasFire, Chara.HasHobbyOrWork(), Chara.held, Chara.homeBranch, Chara.host, Chara.hostility, Card.HostRenderer, Card.hp, Chara.hunger, Card.id, Element.id, TraitChara.IdAmbience, TraitChara.IdleAct(), IdleActText(), Chara.idleActTimer, TraitChara.IdleBehaviour, if(), Map.Installed, PropsManager.installed, LayerCraft.Instance, LayerDragGrid.Instance, Chara.InstantEat(), PolicyManager.IsActive(), Chara.IsAliveInCurrentZone, Point.IsBlocked, Chara.IsCat, Card.isDestroyed, Chara.isDrunk, Card.IsEquipment, ThingContainer.IsFull(), Card.isGifted, Chara.IsGuest(), Chara.IsHostile(), Point.IsHotSpring, Chara.IsHuman, Chara.IsIdle, Point.IsInBounds, Chara.IsInCombat, Card.IsInMutterDistance(), Card.IsInstalled, Chara.IsMinion, Chara.IsMofuable, Zone.IsNefia, Date.IsNight, Chara.IsPC, Chara.IsPCC, Chara.IsPCFaction, Zone.IsPCFaction, Card.IsPCFactionOrMinion, Chara.IsPCParty, Spatial.IsRegion, Card.isRestrained, Card.IsRestrainedResident, Thing.IsSharedContainer, Cell.IsSnowTile, Chara.isSynced, Cell.IsTopWaterAndNoSnow, Zone.IsTown, Zone.IsUserZone, Point.IsValid, Los.IsVisible(), item, ActList.items, PopManager.items, Player.karma, AIAct.KeepRunning(), Party.leader, CharaAbility.list, ThingContainer.List(), Point.ListCharasInRadius(), Room.lot, Chara.mana, Chara.master, Stats.max, Chara.MaxHP, FactionBranch.members, Party.members, Chara.memberType, Stats.Mod(), ElementContainer.ModBase(), Card.ModCurrency(), Card.ModEncLv(), Card.ModNum(), ElementContainer.ModTempPotential(), moveFailCount, Chara.MoveNeighborDefinitely(), Chara.nextUse, Card.noMove, Card.Num, Zone.okaerinko, Chara.OnInsulted(), Chara.orgPos, AIAct.owner, Chara.parasite, Card.parent, Chara.party, EClass.pc, Chara.pccData, Zone.PetFollow, Chara.Pick(), Chara.PickHeld(), Card.PlayAnime(), EClass.player, Card.PlaySound(), FactionBranch.policies, TCText.pop, Card.pos, Point.Position(), Map.props, Chara.race, Game.religions, AIAct.Restart(), TraitManager.restSpots, EClass.rnd(), EClass.rndHalf(), Cell.room, Msg.Say(), Card.Say(), Chara.SetAI(), Chara.SetEnemy(), BaseCard.SetInt(), Chara.sharedCheckTurn, Chara.Sniff(), EClass.Sound, Chara.source, Element.source, Chara.stamina, Player.stats, AIAct.Success, Game.Config.tactics, Card.Talk(), Chara.TalkTopic(), Card.Teleport(), Card.Thing, Card.things, Point.Things, ActThrow.Throw(), Card.trait, Chara.trait, Props.traits, Chara.TryAssignBed(), TryCast(), Chara.TryMoveTowards(), TryPerformIdleUse(), Chara.TryPutSharedItems(), AI_Shopping.TryRestock(), AI_Shopping.TryShop(), Chara.TryTakeSharedItems(), Chara.TryUse(), Chara.turnLastSeen, Player.Stats.turns, Chara.UseAbility(), Stats.value, Element.ValueWithoutLink, Element.vTempPotential, and EClass.world.

◆ TryCast()

void AI_Idle.TryCast ( EffectId  id,
int  power = 100 
)
inline

Definition at line 958 of file AI_Idle.cs.

959 {
960 owner.Say("idle_cast", owner);
961 ActEffect.Proc(id, power, BlessedState.Normal, owner);
962 }
BlessedState
Definition: BlessedState.cs:2
static void Proc(EffectId id, Card cc, Card tc=null, int power=100, ActRef actRef=default(ActRef))
Definition: ActEffect.cs:984

References ActEffect.Proc().

Referenced by Run().

◆ TryCast< T >()

void AI_Idle.TryCast< T > ( EffectId  id,
int  power = 100 
)
inline
Type Constraints
T :Condition 

Definition at line 950 of file AI_Idle.cs.

950 : Condition
951 {
952 if (!owner.HasCondition<T>())
953 {
954 TryCast(id, power);
955 }
956 }

◆ TryPerformIdleUse()

bool AI_Idle.TryPerformIdleUse ( )
inline

Definition at line 1015 of file AI_Idle.cs.

1016 {
1017 for (int i = 0; i < 10; i++)
1018 {
1019 Point randomPoint = owner.pos.GetRandomPoint(7, requireLos: true, allowChara: true, allowBlocked: true);
1020 if (randomPoint == null || randomPoint.detail == null)
1021 {
1022 continue;
1023 }
1024 foreach (Thing thing in randomPoint.detail.things)
1025 {
1026 if (thing.IsInstalled)
1027 {
1028 int num = owner.Dist(thing);
1029 if (EClass.rnd((owner.memberType == FactionMemberType.Guest) ? 5 : 50) == 0 && thing.HasTag(CTAG.tourism) && num <= 2)
1030 {
1031 owner.LookAt(thing);
1032 owner.Talk("nice_statue");
1033 return true;
1034 }
1035 if (EClass.rnd(thing.trait.IdleUseChance) == 0 && thing.trait.IdleUse(owner, num))
1036 {
1037 owner.LookAt(thing);
1038 return true;
1039 }
1040 }
1041 }
1042 }
1043 return false;
1044 }
CTAG
Definition: CTAG.cs:2
bool HasTag(CTAG tag)
Definition: Card.cs:2583
List< Thing > things
Definition: CellDetail.cs:11
override void LookAt(Card c)
Definition: Chara.cs:3513
CellDetail detail
Definition: Point.cs:71
virtual int IdleUseChance
Definition: Trait.cs:362
virtual bool IdleUse(Chara c, int dist)
Definition: Trait.cs:646

References Point.detail, Point.GetRandomPoint(), Card.HasTag(), Trait.IdleUse(), Trait.IdleUseChance, Card.IsInstalled, EClass.rnd(), Card.things, and Card.trait.

Referenced by Run().

Member Data Documentation

◆ _listRoom

List<BaseArea> AI_Idle._listRoom = new List<BaseArea>()
staticprivate

Definition at line 18 of file AI_Idle.cs.

◆ maxRepeat

int AI_Idle.maxRepeat = 10

Definition at line 14 of file AI_Idle.cs.

◆ moveFailCount

int AI_Idle.moveFailCount

Definition at line 16 of file AI_Idle.cs.

Referenced by Run().

Property Documentation

◆ InformCancel

override bool AI_Idle.InformCancel
get

Definition at line 22 of file AI_Idle.cs.

◆ IsIdle

override bool AI_Idle.IsIdle
get

Definition at line 20 of file AI_Idle.cs.

◆ MaxRestart

override int AI_Idle.MaxRestart
get

Definition at line 24 of file AI_Idle.cs.


The documentation for this class was generated from the following file: