8 public static Point GetCleanPoint(
Chara c,
int r = -1,
int tries = 10)
13 for (
int i = 0; i < tries; i++)
21 point.Set(c._x - r +
EClass.rnd(r * 2 + 1), c.pos.z - r +
EClass.rnd(r * 2 + 1));
25 if (point.HasDirt || point.cell.HasLiquid)
29 foreach (
Card card
in point.ListCards(
false))
39 public override IEnumerable<
AIAct.Status> Run()
45 this.pos =
AI_Clean.GetCleanPoint(this.owner, 4, 10);
51 yield
return base.DoIdle(10);
53 yield
return base.DoGoto(this.pos, 0,
false,
null);
54 if (this.owner.pos.HasDirt ||
this.owner.pos.cell.HasLiquid)
56 EClass._map.SetDecal(this.pos.x,
this.pos.z, 0, 1,
true);
57 EClass._map.SetLiquid(this.pos.x,
this.pos.z, 0, 0);
58 this.pos.PlayEffect(
"vanish");
59 this.owner.Say(
"clean", this.owner,
null,
null);
60 this.owner.PlaySound(
"clean_floor", 1f,
true);
61 yield
return base.KeepRunning();
63 List<Card> list = this.owner.pos.ListCards(
false);
65 foreach (
Card card
in list)
69 bool isInstalled = card.IsInstalled;
74 this.owner.Talk(
"clean",
null,
null,
false);
76 yield
return base.Success(
null);
84 public int maxRadius = -1;