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() + "'"); }
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)); }