public bool isHostile(DecisionMaker dm) { if (team == null) { return false; } if (team.hostility.Contains(dm.team.id)) { return true; } else { return false; } }
//private static List<string> availableDMs; //public static List<string> AvailableDMs //{ // get { return availableDMs; } //} public static DecisionMaker GetSpecificDMInfo(string s) { if (allDMs.ContainsKey(s)) { DecisionMaker dm = new DecisionMaker(allDMs[s].id, allDMs[s].team); lock (dmLock) { dm.availability = allDMs[s].availability; dm.briefing = allDMs[s].briefing; dm.color = allDMs[s].color; dm.isHuman = allDMs[s].isHuman; dm.role = allDMs[s].role; } return dm; } return null; }
public void ReceiveDecisionMakerEvent(SimulationEvent dmEvent) { string dmID = ((StringValue)dmEvent["ID"]).value; string dmRole = ((StringValue)((AttributeCollectionValue)dmEvent["Attributes"])["RoleName"]).value; string team = ((StringValue)((AttributeCollectionValue)dmEvent["Attributes"])["TeamMember"]).value; int dmColor = ((IntegerValue)((AttributeCollectionValue)dmEvent["Attributes"])["Color"]).value; string dmBriefing = ((StringValue)((AttributeCollectionValue)dmEvent["Attributes"])["Briefing"]).value; Boolean isObserver = ((BooleanValue)((AttributeCollectionValue)dmEvent["Attributes"])["IsObserver"]).value; DecisionMaker dm = new DecisionMaker(dmID, null); //STUB; need teams info dm.role = dmRole; dm.color = dmColor; dm.briefing = dmBriefing; dm.isHuman = !((BooleanValue)((AttributeCollectionValue)dmEvent["Attributes"])["ComputerControlled"]).value; if (!allDMs.ContainsKey(dmID)) allDMs.Add(dmID, dm); dm.isObserver = isObserver; //SimulationEvent player = SimulationEventFactory.BuildEvent(ref simModelInfo, "PlayerControl"); //((StringValue)player["DecisionMakerID"]).value = dmID; //((StringValue)player["ControlledBy"]).value = "COMPUTER"; //server.PutEvent(player); }