public void AttackSucceeded(SimulationEvent ev) { if (m_currentBehavior != null) { m_currentBehavior.AttackSucceeded(ev); } }
private void TimeTick(SimulationEvent e) { foreach (StateDB.ActiveRegion region in StateDB.dynamicRegions.Values) { if (region.linkedObject == "") continue; //don't draw unlinked regions SimulationObjectProxy obProx = objectProxies[region.linkedObject]; //Calculate new absolute poly for region and send ViewPro event LocationValue lvLoc = (LocationValue)obProx["Location"].GetDataValue(); Vec2D loc = new Vec2D(lvLoc); if (!lvLoc.exists) { return; //possible that the tractor object doesn't exist, so don't show it. } Polygon3D absolutePoly = GetAbsolutePolygon(loc, region.poly.Footprint); absolutePoly.TopZ = region.poly.TopZ; absolutePoly.BottomZ = region.poly.BottomZ; region.referencePoint = loc; region.currentAbsolutePolygon = absolutePoly; this.SendViewProActiveRegionUpdate(region.id, region.isVisible, region.displayColor, absolutePoly); } }
public void ProcessEvent(SimulationEvent e) { //objectProxies = bbClient.GetObjectProxies(); switch (e.eventType) { case "NewObject": NewObject(e); break; case "RevealObject": RevealObject(e); break; case "StateChange": StateChange(e); break; case "TimeTick": TimeTick(e); break; case "ExternalApp_SimStop": ResetSimulation(); break; case "ForceUpdateObjectAttribute": ForceUpdateObjectAttribute(e); break; default: break; } }
public void ViewProAttackUpdate(SimulationEvent ev) { if (m_currentBehavior != null) { m_currentBehavior.ViewProAttackUpdate(ev); } }
public void AddTextMessage(SimulationEvent e) { string msg = ((StringValue)e["ChatBody"]).value; lock (streamLock) { textStream = String.Format("{0}\r\n{1}", msg, textStream); } }
public static void PublishCPE(String dmId, double findFixCpe, double trackTargetCpe) { SimulationEvent cpe = new SimulationEvent(); cpe.eventType = "SEAMATE_UpdateCPE"; cpe.parameters.Add("DM_ID", DataValueFactory.BuildString(dmId)); cpe.parameters.Add("FF_CPE", DataValueFactory.BuildDouble(findFixCpe)); cpe.parameters.Add("TT_CPE", DataValueFactory.BuildDouble(trackTargetCpe)); if (_client == null) throw new Exception("DDD Network Client not connected; You need to call Connect successfully before sending events."); _client.PutEvent(cpe); }
public void ProcessEvent(SimulationEvent e) { objectProxies = bbClient.GetObjectProxies(); switch (e.eventType) { case "TimeTick": TimeTick(e); break; default: break; } }
public ScenarioData(SimulationEvent e) { MapFileName = ((StringValue)e["MapName"]).value; UTMZone = ""; ScenarioName = ((StringValue)e["ScenarioName"]).value; ScenarioDescription = ((StringValue)e["ScenarioDescription"]).value; PlayerBrief = ((StringValue)e["PlayerBrief"]).value; IconLibrary = ((StringValue)e["IconLibrary"]).value; UTMEasting = ((DoubleValue)e["UTMEasting"]).value; UTMNorthing = ((DoubleValue)e["UTMNorthing"]).value; HorizontalMetersPerPixel = ((DoubleValue)e["HorizontalPixelsPerMeter"]).value; VerticalMetersPerPixel = ((DoubleValue)e["VerticalPixelsPerMeter"]).value; }
/* static public SimulationEvent DeepCopy(ref SimulationEvent e) { SimulationEvent n = new SimulationEvent(); n.eventType = e.eventType; foreach (string p in e.parameters.Keys) { n.parameters[p] = e.parameters[p]; } return n; } */ static public string XMLSerialize(SimulationEvent e) { StringBuilder sb; lock (e.eventLock) { sb = new StringBuilder(String.Format("<{0}>", e.eventType)); foreach (string key in e.parameters.Keys) { sb.Append(String.Format("<Parameter><Name>{0}</Name><Value>{1}</Value></Parameter>", key, DataValueFactory.XMLSerialize(e.parameters[key]))); } sb.Append(String.Format("</{0}>", e.eventType)); } return sb.ToString(); }
static public SimulationEvent BuildEvent(ref SimulationModelInfo model, string eventType) { SimulationEvent e = new SimulationEvent(); if (!model.eventModel.events.ContainsKey(eventType)) { throw new Exception("Event type doesn't exist"); } foreach (ParameterInfo pInfo in model.eventModel.events[eventType].parameters.Values) { e[pInfo.name] = DataValueFactory.BuildValue(pInfo.dataType); } e.eventType = eventType; return e; }
public void ProcessEvent(SimulationEvent e) { //objectProxies = bbClient.GetObjectProxies(); switch (e.eventType) { case "TimeTick": TimeTick(e); break; case "RevealObject": RevealObject(e); break; case "SubplatformLaunch": SubplatformLaunch(e); break; case "WeaponLaunch": WeaponLaunch(e); break; case "SubplatformDock": SubplatformDock(e); break; case "ExternalApp_SimStop": ResetSimulation(); break; case "StateChange": StateChange(e); break; case "NewObject": NewObject(e); break; case "WeaponLaunchFailure": WeaponLaunchFailure(e); break; case "ClientAttackRequest": ClientAttackRequest(e); break; case "ForceUpdateObjectAttribute": ForceUpdateObjectAttribute(e); break; default: break; } }
public void PutEvent(SimulationEvent e) { lock (distributorLock) { if (e.eventType == "TimeTick") { currentTimeTick = ((IntegerValue)e["Time"]).value; } e["Time"] = DataValueFactory.BuildInteger(currentTimeTick); if (incoming == true) { AddToOutgoingQueues(e); } else { AddToIncomingQueue(e); } } }
public void ProcessEvent(SimulationEvent e) { switch (e.eventType) { case "NewObject": //System.Console.WriteLine(GetSimulatorName() + " recieved " + e.eventType); NewObject(e); break; case "ExternalApp_SimStop": ResetSimulation(); break; case "TimeTick": TimeTick(e); break; case "ForceUpdateObjectAttribute": ForceUpdateObjectAttribute(e); break; default: break; } }
public void AuthenticationRequest(SimulationEvent e) { Authenticator.LoadUserFile(); string terminalID = ((StringValue)e["TerminalID"]).value; if (currentlyLoggedInUsers == maxNumberOfUsers) { SendAuthenticationResponse(terminalID, "The server has reached its limit for number of users attached to the DDD.", false); return; } string username = ((StringValue)e["Username"]).value; string password = ((StringValue)e["Password"]).value; if (Authenticator.Authenticate(username, password)) { SendAuthenticationResponse(terminalID, "Authentication successful!", true); } else { SendAuthenticationResponse(terminalID, "Invalid username and/or password", false); } }
static public bool ValidateEvent(ref SimulationModelInfo model, SimulationEvent e) { try { string eventType = e.eventType; if (!model.eventModel.events.ContainsKey(eventType)) { return false; } foreach (ParameterInfo pInfo in model.eventModel.events[eventType].parameters.Values) { if (!e.parameters.ContainsKey(pInfo.name)) { return false; } if (e[pInfo.name].dataType != pInfo.dataType) { return false; } } foreach (string attname in e.parameters.Keys) { if (!model.eventModel.events[eventType].parameters.ContainsKey(attname)) { return false; } } } catch (Exception) { return false; } return true; }
static public bool ValidateEvent(ref SimulationModelInfo model, SimulationEvent e) { try { string eventType = e.eventType; if (!model.eventModel.events.ContainsKey(eventType)) { return(false); } foreach (ParameterInfo pInfo in model.eventModel.events[eventType].parameters.Values) { if (!e.parameters.ContainsKey(pInfo.name)) { return(false); } if (e[pInfo.name].dataType != pInfo.dataType) { return(false); } } foreach (string attname in e.parameters.Keys) { if (!model.eventModel.events[eventType].parameters.ContainsKey(attname)) { return(false); } } } catch (Exception) { return(false); } return(true); }
/* private CapabilityValue.Effect FindCapabilityEffect(CapabilityValue cap, VulnerabilityValue vuln) { List<string> vulnNames = new List<string>(); foreach (VulnerabilityValue.Transition t in vuln.transitions) { foreach (VulnerabilityValue.TransitionCondition tc in t.conditions) { if (!vulnNames.Contains(tc.capability)) { vulnNames.Add(tc.capability); } } } foreach (CapabilityValue.Effect e in cap.effects) { if (vulnNames.Contains(e.name)) { return e; } } return null; }*/ private void TimeTick(SimulationEvent e) { if (objectProxies == null) { objectProxies = bbClient.GetObjectProxies(); } time = ((IntegerValue)e["Time"]).value; DataValue dv = null; SimulationObjectProxy obProx = null, targetProx = null; Vec3D myLoc; Vec3D targetLoc; string targetID; bool isWeapon = false; bool pursueStarted; CapabilityValue capabilities; VulnerabilityValue vulnerabilities; CapabilityValue.Effect effect; double distance; LocationValue location; foreach (string id in objectProxies.Keys) { obProx = objectProxies[id]; // update the StateDB info if (StateDB.physicalObjects[id].ownerID == "") { string owner = ((StringValue)obProx["OwnerID"].GetDataValue()).value; if (StateDB.decisionMakers.ContainsKey(owner)) { StateDB.physicalObjects[id].ownerID = owner; } } if (StateDB.physicalObjects[id].speciesName == "") { string speciesName = ((StringValue)obProx["ClassName"].GetDataValue()).value; StateDB.physicalObjects[id].speciesName = speciesName; } if (StateDB.physicalObjects[id].ownerID != "" && StateDB.physicalObjects[id].teamName == "") { if (StateDB.decisionMakers[StateDB.physicalObjects[id].ownerID].team != null) { StateDB.physicalObjects[id].teamName = StateDB.decisionMakers[StateDB.physicalObjects[id].ownerID].team.id; } } if (((StringValue)obProx["AttackState"].GetDataValue()).value == "BEING_ATTACKED") { continue; } AttackCollectionValue attCV = (AttackCollectionValue)obProx["CurrentAttacks"].GetDataValue(); if (attCV.GetCurrentSelfDefenseAttacks().Count == 0) //if (((StringValue)obProx["AttackTargetID"].GetDataValue()).value == "") { dv = obProx["SelfDefenseStartAttack"].GetDataValue(); ((BooleanValue)dv).value = false; obProx["SelfDefenseStartAttack"].SetDataValue(dv); dv = obProx["SelfDefenseCapability"].GetDataValue(); ((StringValue)dv).value = ""; obProx["SelfDefenseCapability"].SetDataValue(dv); dv = obProx["SelfDefenseTargetID"].GetDataValue(); ((StringValue)dv).value = ""; obProx["SelfDefenseTargetID"].SetDataValue(dv); } if (((BooleanValue)obProx["SelfDefenseStartAttack"].GetDataValue()).value == true) { continue; } isWeapon = ((BooleanValue)obProx["IsWeapon"].GetDataValue()).value; pursueStarted = ((BooleanValue)obProx["PursueStarted"].GetDataValue()).value; targetID = ((StringValue)obProx["PursueTargetID"].GetDataValue()).value; capabilities = (CapabilityValue)obProx["Capability"].GetDataValue(); if (isWeapon && pursueStarted && objectProxies.ContainsKey(targetID)) { targetProx = objectProxies[targetID]; location = (LocationValue)obProx["Location"].GetDataValue(); if (!location.exists) { continue; } myLoc = new Vec3D(location); location = (LocationValue)targetProx["Location"].GetDataValue(); if (!location.exists) { continue; } targetLoc = new Vec3D(location); distance = myLoc.ScalerDistanceTo(targetLoc); vulnerabilities = (VulnerabilityValue)targetProx["Vulnerability"].GetDataValue(); //string cap = FindCapability(capabilities, vulnerabilities); effect = SimUtility.FindCapabilityEffect(capabilities, vulnerabilities); if (effect != null && distance < effect.range) { dv = obProx["SelfDefenseStartAttack"].GetDataValue(); ((BooleanValue)dv).value = true; obProx["SelfDefenseStartAttack"].SetDataValue(dv); dv = obProx["SelfDefenseCapability"].GetDataValue(); ((StringValue)dv).value = effect.name; obProx["SelfDefenseCapability"].SetDataValue(dv); dv = obProx["SelfDefenseTargetID"].GetDataValue(); ((StringValue)dv).value = targetID; obProx["SelfDefenseTargetID"].SetDataValue(dv); } else if (effect == null && distance < 1) { distClient.PutEvent(SimUtility.BuildStateChangeEvent(ref simModel, time, id, "Dead")); } continue; } string ownerID = ((StringValue)obProx["OwnerID"].GetDataValue()).value; if (StateDB.decisionMakers.ContainsKey(ownerID)) { StateDB.DecisionMaker thisDM = StateDB.decisionMakers[ownerID]; List<string> targets = ((StringListValue)obProx["TargetsInRange"].GetDataValue()).strings; //if (targets.Count == 0) //{ // continue; //} foreach (string target in targets) { SimulationObjectProxy obProx2 = objectProxies[target]; string ownerID2 = ((StringValue)obProx2["OwnerID"].GetDataValue()).value; if (!StateDB.decisionMakers.ContainsKey(ownerID2)) { continue; } StateDB.DecisionMaker thatDM = StateDB.decisionMakers[ownerID2]; vulnerabilities = (VulnerabilityValue)obProx2["Vulnerability"].GetDataValue(); effect = SimUtility.FindCapabilityEffect(capabilities, vulnerabilities); if (effect != null && thisDM.isHostile(thatDM) && !thisDM.isHuman) { dv = obProx["SelfDefenseStartAttack"].GetDataValue(); ((BooleanValue)dv).value = true; obProx["SelfDefenseStartAttack"].SetDataValue(dv); dv = obProx["SelfDefenseCapability"].GetDataValue(); ((StringValue)dv).value = effect.name; obProx["SelfDefenseCapability"].SetDataValue(dv); dv = obProx["SelfDefenseTargetID"].GetDataValue(); ((StringValue)dv).value = target; obProx["SelfDefenseTargetID"].SetDataValue(dv); break; } } } } }
private void RevealObject(SimulationEvent e) { //objectProxies = bbClient.GetObjectProxies(); // update my objects record AttributeCollectionValue atts = (AttributeCollectionValue)e["Attributes"]; string id = ((StringValue)e["ObjectID"]).value; SimulationObjectProxy prox = null; // objectProxies[id]; prox = GetObjectProxy(id); if (prox == null) return; foreach (string attname in atts.attributes.Keys) { if (attname == "ID") { continue; } if (prox.GetKeys().Contains(attname) && prox[attname].IsOwner()) { prox[attname].SetDataValue(atts[attname]); } } }
private void PlayerControl(SimulationEvent e) { string id = ((StringValue)e["DecisionMakerID"]).value; string controlledBy = ((StringValue)e["ControlledBy"]).value; if (StateDB.decisionMakers.ContainsKey(id)) { if (controlledBy == "HUMAN") { StateDB.decisionMakers[id].isHuman = true; } else { StateDB.decisionMakers[id].isHuman = false; } } }
private void NewObject(SimulationEvent e) { //objectProxies = bbClient.GetObjectProxies(); // update my objects record string id = ((StringValue)e["ID"]).value; string type = ((StringValue)e["ObjectType"]).value; if (objectProxies == null) { objectProxies = new Dictionary<string, SimulationObjectProxy>(); } SimulationObjectProxy prox = bbClient.GetObjectProxy(id); if (prox == null) { return; } if (!objectProxies.ContainsKey(id)) { objectProxies.Add(id, prox); } else { objectProxies[id] = prox; } AttributeCollectionValue atts = (AttributeCollectionValue)e["Attributes"]; if (atts.attributes.ContainsKey("ID")) //REMOVE WHEN DONE MIGRATING REVEAL { string id2 = ((StringValue)atts["ID"]).value; if (objectProxies.ContainsKey(id2)) { SimulationObjectProxy proxi = objectProxies[id2]; foreach (string attname in atts.attributes.Keys) { if (proxi.GetKeys().Contains(attname) && proxi[attname].IsOwner()) { proxi[attname].SetDataValue(atts[attname]); } } } } /* if (((StringValue)e["ObjectType"]).value == "Team") { StateDB.Team t = new StateDB.Team(((StringValue)e["ID"]).value, ((StringListValue)((AttributeCollectionValue)e["Attributes"]).attributes["TeamHostility"]).strings); StateDB.teams[t.id] = t; } else if (((StringValue)e["ObjectType"]).value == "DecisionMaker") { string teamID = ((StringValue)((AttributeCollectionValue)e["Attributes"]).attributes["TeamMember"]).value; StateDB.DecisionMaker d = new StateDB.DecisionMaker(((StringValue)e["ID"]).value, StateDB.teams.ContainsKey(teamID) ? StateDB.teams[teamID] : null); StateDB.decisionMakers[d.id] = d; }*/ }
private void ForceUpdateObjectAttribute(SimulationEvent e) { return; }
public void ProcessEvent(SimulationEvent e) { //objectProxies = bbClient.GetObjectProxies(); switch (e.eventType) { case "TimeTick": TimeTick(e); break; case "NewObject": NewObject(e); break; case "RevealObject": RevealObject(e); break; //case "HandshakeInitializeGUIDone": // HandshakeInitializeGUIDone(e); // break; case "ExternalApp_SimStop": ResetSimulation(); break; case "PlayerControl": PlayerControl(e); break; case "ForceUpdateObjectAttribute": ForceUpdateObjectAttribute(e); break; default: break; } }
public void ViewProActiveRegionUpdate(SimulationEvent ev) { }
public void ViewProStopObjectUpdate(SimulationEvent ev) { }
public void ViewProAttackUpdate(SimulationEvent ev) { }
public void ViewProMotionUpdate(SimulationEvent ev) { }
public void ViewProAttributeUpdate(SimulationEvent ev) { }
public void ViewProInitializeObject(SimulationEvent ev) { }
public EventListBoxItem(SimulationEvent se) { simEvent = se; }
public void AttackSucceeded(SimulationEvent ev) { }
private void ForceUpdateObjectAttribute(SimulationEvent e) { string objectId = ((StringValue)e["ObjectID"]).value; string attributeName = ((StringValue)e["AttributeName"]).value; if (!objectProxies.ContainsKey(objectId)) { return; } try { if (!objectProxies[objectId].GetKeys().Contains(attributeName)) return; if (!objectProxies[objectId][attributeName].IsOwner()) { return; } } catch (Exception ex) { return; } DataValue attributeValue = e["AttributeValue"]; if (attributeValue.dataType != "WrapperType") return; attributeValue = ((WrapperValue)attributeValue).value; SimulationObjectProxy obj = null; //depending on the attribute, you might have specific functionality switch (attributeName) { case "Intent": ChangeIntent(attributeValue as StringValue, objectId); break; default: break; } //try //{ // obj[attributeName].SetDataValue(attributeValue); //} //catch (Exception ex) //{ // return; //} attributeValue = null; obj = null; }
public void PutEvent(SimulationEvent e) { dist.PutEvent(e); }