예제 #1
0
        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;
            }
        }
예제 #2
0
        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;
            }
        }