public void AddCharacter(Character character)
        {
			lock (Characters) {
				if (Characters.ContainsKey (character.Name))
					Characters [character.Name] = character;
				else
					Characters.Add (character.Name, character);
			}
            if (HasSetup) character.Setup();
            if (HasStarted) character.Start();
            DebugIf("all", "Added Character '" + character.ToString() + "'");
        }
Пример #2
0
        private void ReplaceBehavior(Behavior behavior, Character character)
        {
			DebugIf("all", "ReplaceBehavior '" + behavior.Id + "' on character '" + character.ToString() + "'");
            CancelCurrentPlan();
            List<BehaviorNode> nodes = SolveConstraints(behavior.Nodes);
            if (character != null) ScheduleBehavior(new BehaviorExecutionContext(behavior, nodes, character));
            else ScheduleBehavior(new BehaviorExecutionContext(behavior, nodes));
        }