public virtual void OnParentKilled(Actor self, Actor attacker, SpawnerChildDisposal disposal) { if (conditionManager != null && !string.IsNullOrEmpty(info.ParentDeadCondition)) { parentDeadToken = conditionManager.GrantCondition(self, info.ParentDeadCondition); } switch (disposal) { case SpawnerChildDisposal.KillChildren: self.Kill(attacker, info.DamageTypes); break; case SpawnerChildDisposal.GiveChildrenToAttacker: self.CancelActivity(); self.ChangeOwner(attacker.Owner); break; case SpawnerChildDisposal.DoNothing: default: break; } }
public virtual void OnParentOwnerChanged(Actor self, Player oldOwner, Player newOwner, SpawnerChildDisposal disposal) { switch (disposal) { case SpawnerChildDisposal.KillChildren: self.Kill(self, info.DamageTypes); break; case SpawnerChildDisposal.GiveChildrenToAttacker: self.CancelActivity(); self.ChangeOwner(newOwner); break; case SpawnerChildDisposal.DoNothing: default: break; } }