9 public virtual bool IsParasite
18 public override bool Perform()
20 List<Chara> list =
Act.TP.ListCharas();
23 foreach (
Chara chara
in list)
25 if (chara.host ==
null && !chara.IsMultisize)
29 if ((this.IsParasite &&
Act.CC.parasite !=
null) || (!
this.IsParasite &&
Act.CC.ride !=
null))
38 if (!chara.trait.CanJoinPartyResident)
43 if (
EClass.debug.enable || (chara.IsPCFaction && chara.trait.CanJoinParty))
54 Msg.Say(
"noTargetFound");
60 public static void Ride(
Chara host,
Chara t,
bool parasite =
false)
64 if (host.parasite !=
null)
69 host.Say(
"parasite", host, t,
null,
null);
73 if (host.ride !=
null)
78 host.Say(
"ride", host, t,
null,
null);
84 EClass.pc.party.AddMemeber(t);
87 if (t.race.tag.Contains(
"ride"))
91 if (t.race.tag.Contains(
"noRide"))
97 Msg.Say(
"ride_broom");
102 host.PlaySound(
"ride", 1f,
true);
103 t.Talk(parasite ?
"parasite" :
"ride",
null,
null,
false);
104 host.SetDirtySpeed();
112 public static void Unride(
Chara host,
bool parasite =
false)
117 chara = host.parasite;
118 host.parasite =
null;
119 host.Say(
"parasite_unride", host, chara,
null,
null);
125 host.Say(
"ride_unride", host, chara,
null,
null);
128 chara._CreateRenderer();
129 chara.Talk(parasite ?
"parasite_unride" :
"ride_unride",
null,
null,
true);
130 host.PlaySound(
"ride", 1f,
true);
131 host.SetDirtySpeed();
132 chara.SetDirtySpeed();