9 public bool IsValidTarget(
Card c)
11 return this.altar !=
null && this.altar.trait.CanOffer(c);
15 public override IEnumerable<
AIAct.Status> Run()
17 if (this.target !=
null && this.target.ExistsOnMap)
19 yield
return base.DoGoto(this.target,
null);
21 this.altar =
EClass._map.Installed.traits.altars.GetRandomInstalled();
22 if (this.altar ==
null)
24 yield
return this.Cancel();
26 if (!this.IsValidTarget(this.owner.held))
28 yield
return base.DoGrab(
EClass._map.charas.Where(
new Func<Chara, bool>(
this.IsValidTarget)).RandomItem<
Chara>(), -1,
false,
null);
29 if (!this.IsValidTarget(this.owner.held))
31 yield
return this.Cancel();
34 yield
return base.DoGoto(this.altar,
null);
35 if (!this.IsValidTarget(this.owner.held))
37 yield
return this.Cancel();
39 this.owner.DropHeld(this.altar.pos);
42 canProgress = (() => this.altar.ExistsOnMap),
45 this.altar.trait.OfferProcess(this.owner);
47 onProgressComplete = delegate()
49 this.altar.trait.Offer(this.owner);
52 yield
return base.Do(seq,
null);