9 public virtual bool IsHobby
18 public virtual List<Hobby> GetWorks()
20 return this.owner.ListWorks(
true);
24 public override IEnumerable<
AIAct.Status> Run()
26 if (this.FindWork(this.owner,
true))
28 yield
return base.Success(
null);
30 yield
return base.DoIdle(3);
35 public void ValidateHobby(
Chara c)
38 WorkSummary workSummary = this.owner.GetWorkSummary();
39 List<Hobby> list = this.owner.ListHobbies(
true);
40 workSummary.hobbies.Clear();
41 Room room = this.owner.FindRoom();
43 while (i < list.Count)
50 if (!this.TryWork(room, list[i],
false))
53 foreach (
Room room2
in EClass._map.rooms.listRoom)
55 if (room2.lot == lot && room2 != room &&
this.TryWork(room2, list[i],
false))
70 this.TryWork(
null, list[i],
false);
76 public bool FindWork(
Chara c,
bool setAI =
true)
79 WorkSummary workSummary = this.owner.GetWorkSummary();
82 workSummary.hobbies.Clear();
86 workSummary.work =
null;
88 Room room = this.owner.FindRoom();
91 if (this.TryWork(room, setAI))
96 foreach (
Room room2
in EClass._map.rooms.listRoom)
98 if (room2.lot == lot && room2 != room && !room2.IsPrivate &&
this.TryWork(room2, setAI))
104 return this.TryWork(
null, setAI);
108 public bool TryWork(
BaseArea destArea,
bool setAI =
true)
110 List<Hobby> works = this.GetWorks();
114 return this.TryWork(destArea, h, setAI);
116 foreach (
Hobby h2
in works)
118 if (this.TryWork(destArea, h2, setAI))
129 AIWork ai = h.GetAI(this.owner);
130 ai.destArea = destArea;
131 if (ai.SetDestination())
133 WorkSummary workSummary = this.owner.GetWorkSummary();
136 workSummary.hobbies.Add(ai.GetSession());
140 workSummary.work = ai.GetSession();
144 this.owner.SetAI(ai);
152 public override void OnSimulatePosition()
154 Room room = this.owner.FindRoom();
157 this.owner.MoveImmediate(room.GetRandomFreePos(),
true,
true);