public void SetInfiltration(Infiltration infiltration) { currentInfiltration = infiltration; if (theme != null) { if (infiltration == Infiltration.Trigger) { theme.clip = Trigger; theme.Play(); theme.loop = true; } else if (infiltration == Infiltration.Undetected) { theme.clip = Main; theme.Play(); theme.loop = true; } else if (infiltration == Infiltration.Detected) { theme.Play(); theme.loop = true; } } }
public static void AddInfiltration(long assetId, Infiltration infiltration) { using (var context = new FactionRPG()) { var asset = context.Assets.SingleOrDefault(a => a.Id == assetId); asset.Infiltrations.Add(infiltration); context.SaveChanges(); } //ClearCache("Asset_" + assetId); }
private void InfiltrateAssetByFactions(Perspective.Actor actor, List <long> infiltratingFactionIds, int profileCount) { foreach (var factionId in infiltratingFactionIds) { var infiltration = new Infiltration() { FactionId = factionId, ProfileCount = profileCount, }; actor.Infiltrations.Add(infiltration); } }
private static void InfiltrateBy(this Asset asset, List <long> infiltratingFactionIds, int profileCount) { foreach (var factionId in infiltratingFactionIds) { var infiltration = new Infiltration() { FactionId = factionId, ProfileCount = profileCount, }; Service.AddInfiltration(asset.Id, infiltration); } }
// Start is called before the first frame update void Start() { currentState = State.Move; currentInfiltration = Infiltration.Undetected; movement = Vector2.zero; currentDirection = 1; rgb2D = GetComponent <Rigidbody2D>(); sprRenderer = GetComponent <SpriteRenderer>(); anim = GetComponent <Animator>(); myAudio = GetComponent <AudioSource>(); sprIcone = this.transform.GetChild(1).GetComponent <SpriteRenderer>(); View = this.transform.GetChild(0); }
public static InternalCondition ToSAM_InternalCondtion(this ProgramType programType) { if (programType == null) { return(null); } InternalCondition result = new InternalCondition(programType.DisplayName); People people = programType.People; if (people != null) { result.SetValue(Analytical.InternalConditionParameter.OccupancyProfileName, Core.LadybugTools.Query.Identifier(people.OccupancySchedule)); } Lighting lighting = programType.Lighting; if (lighting != null) { result.SetValue(Analytical.InternalConditionParameter.LightingProfileName, Core.LadybugTools.Query.Identifier(lighting.Schedule)); } ElectricEquipment electricEquipment = programType.ElectricEquipment; if (electricEquipment != null) { result.SetValue(Analytical.InternalConditionParameter.EquipmentSensibleProfileName, Core.LadybugTools.Query.Identifier(electricEquipment.Schedule)); } Infiltration infiltration = programType.Infiltration; if (infiltration != null) { result.SetValue(Analytical.InternalConditionParameter.InfiltrationProfileName, Core.LadybugTools.Query.Identifier(infiltration.Schedule)); } Setpoint setPoint = programType.Setpoint; if (setPoint != null) { result.SetValue(Analytical.InternalConditionParameter.CoolingProfileName, Core.LadybugTools.Query.Identifier(setPoint.CoolingSchedule)); result.SetValue(Analytical.InternalConditionParameter.HeatingProfileName, Core.LadybugTools.Query.Identifier(setPoint.HeatingSchedule)); } return(result); }
public static List <Profile> ToSAM_Profiles(this ProgramType programType) { if (programType == null) { return(null); } List <Profile> result = new List <Profile>(); People people = programType.People; if (people != null) { AnyOf <ScheduleRuleset, ScheduleFixedInterval> occupancySchedule = people.OccupancySchedule; AnyOf <ScheduleRuleset, ScheduleFixedInterval> activitySchedule = people.ActivitySchedule; } Lighting lighting = programType.Lighting; if (lighting != null) { AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule = lighting.Schedule; } ElectricEquipment electricEquipment = programType.ElectricEquipment; if (electricEquipment != null) { AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule = electricEquipment.Schedule; } Infiltration infiltration = programType.Infiltration; if (infiltration != null) { AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule = infiltration.Schedule; } Setpoint setPoint = programType.Setpoint; if (setPoint != null) { AnyOf <ScheduleRuleset, ScheduleFixedInterval> coolingSchedule = setPoint.CoolingSchedule; AnyOf <ScheduleRuleset, ScheduleFixedInterval> heatingSchedule = setPoint.HeatingSchedule; } return(result); }
public static ProgramType ToLadybugTools(this Space space, AdjacencyCluster adjacencyCluster, ProfileLibrary profileLibrary) { InternalCondition internalCondition = space.InternalCondition; if (internalCondition == null) { return(null); } string uniqueName = Core.LadybugTools.Query.UniqueName(internalCondition); if (string.IsNullOrWhiteSpace(uniqueName)) { return(null); } People people = null; Lighting lighting = null; ElectricEquipment electricEquipment = null; Infiltration infiltration = null; Setpoint setpoint = null; if (profileLibrary != null) { double area = double.NaN; if (!space.TryGetValue(SpaceParameter.Area, out area)) { area = double.NaN; } Dictionary <ProfileType, Profile> dictionary = internalCondition.GetProfileDictionary(profileLibrary); if (dictionary.ContainsKey(ProfileType.Occupancy)) { Profile profile = dictionary[ProfileType.Occupancy]; if (profile != null) { double gain = Analytical.Query.OccupancyGain(space); if (double.IsNaN(gain)) { gain = 0; } ScheduleRuleset scheduleRuleset = profile.ToLadybugTools(); if (scheduleRuleset != null) { double gainPerPeople = gain; if (double.IsNaN(gainPerPeople)) { gainPerPeople = 0; } double occupancy = Analytical.Query.CalculatedOccupancy(space); if (!double.IsNaN(occupancy) && occupancy != 0) { gainPerPeople = gainPerPeople / occupancy; } ScheduleRuleset scheduleRuleset_ActivityLevel = profile.ToLadybugTools_ActivityLevel(gainPerPeople); if (scheduleRuleset_ActivityLevel != null) { double peoplePerArea = Analytical.Query.CalculatedPeoplePerArea(space); if (double.IsNaN(peoplePerArea)) { peoplePerArea = 0; } double latentFraction = double.NaN; double sensibleOccupancyGain = Analytical.Query.OccupancySensibleGain(space); double latentOccupancyGain = Analytical.Query.OccupancyLatentGain(space); if (!double.IsNaN(sensibleOccupancyGain) || !double.IsNaN(latentOccupancyGain)) { latentFraction = latentOccupancyGain / (latentOccupancyGain + sensibleOccupancyGain); } if (!internalCondition.TryGetValue(Analytical.InternalConditionParameter.OccupancyRadiantProportion, out double occuplancyRadiantProportion)) { occuplancyRadiantProportion = 0.3; } if (double.IsNaN(latentFraction)) { latentFraction = 0; } people = new People( identifier: string.Format("{0}_People", uniqueName), peoplePerArea: peoplePerArea, occupancySchedule: scheduleRuleset, displayName: profile.Name, userData: null, activitySchedule: scheduleRuleset_ActivityLevel, radiantFraction: occuplancyRadiantProportion, latentFraction: latentFraction); } } } } if (dictionary.ContainsKey(ProfileType.Lighting)) { Profile profile = dictionary[ProfileType.Lighting]; if (profile != null) { double gain = Analytical.Query.CalculatedLightingGain(space); if (double.IsNaN(gain)) { gain = 0; } ScheduleRuleset scheduleRuleset = profile.ToLadybugTools(); if (scheduleRuleset != null) { double gainPerArea = gain; if (double.IsNaN(gainPerArea)) { gainPerArea = 0; } if (!double.IsNaN(area) && area != 0) { gainPerArea = gainPerArea / area; } if (!internalCondition.TryGetValue(Analytical.InternalConditionParameter.LightingRadiantProportion, out double lightingRadiantProportion)) { lightingRadiantProportion = 0.32; } if (!internalCondition.TryGetValue(Analytical.InternalConditionParameter.LightingViewCoefficient, out double lightingViewCoefficient)) { lightingViewCoefficient = 0.25; } lighting = new Lighting( identifier: string.Format("{0}_Lighting", uniqueName), wattsPerArea: gainPerArea, schedule: scheduleRuleset, visibleFraction: lightingViewCoefficient, radiantFraction: lightingRadiantProportion, displayName: profile.Name); } } } if (dictionary.ContainsKey(ProfileType.EquipmentSensible)) { double gain = Analytical.Query.CalculatedEquipmentSensibleGain(space); if (double.IsNaN(gain)) { gain = 0; } Profile profile = dictionary[ProfileType.EquipmentSensible]; if (profile != null) { ScheduleRuleset scheduleRuleset = profile.ToLadybugTools(); if (scheduleRuleset != null) { double gainPerArea = gain; if (double.IsNaN(gainPerArea)) { gainPerArea = 0; } if (!double.IsNaN(area) && area != 0) { gainPerArea = gainPerArea / area; } if (!internalCondition.TryGetValue(Analytical.InternalConditionParameter.EquipmentRadiantProportion, out double equipmentRadiantProportion)) { equipmentRadiantProportion = 0; } electricEquipment = new ElectricEquipment( identifier: string.Format("{0}_ElectricEquipment", uniqueName), wattsPerArea: gainPerArea, schedule: scheduleRuleset, radiantFraction: equipmentRadiantProportion, displayName: profile.Name); } } } if (dictionary.ContainsKey(ProfileType.Infiltration)) { Profile profile = dictionary[ProfileType.Infiltration]; if (profile != null) { ScheduleRuleset scheduleRuleset = profile.ToLadybugTools(); if (scheduleRuleset != null) { double airFlowPerExteriorArea = Query.InfiltrationAirFlowPerExteriorArea(adjacencyCluster, space); infiltration = new Infiltration( identifier: string.Format("{0}_Infiltration", uniqueName), flowPerExteriorArea: airFlowPerExteriorArea, schedule: scheduleRuleset, displayName: profile.Name); } } } if (dictionary.ContainsKey(ProfileType.Cooling) && dictionary.ContainsKey(ProfileType.Heating)) { Profile profile_Cooling = dictionary[ProfileType.Cooling]; Profile profile_Heating = dictionary[ProfileType.Heating]; if (profile_Cooling != null && profile_Heating != null) { ScheduleRuleset scheduleRuleset_Cooling = profile_Cooling.ToLadybugTools(); ScheduleRuleset scheduleRuleset_Heating = profile_Heating.ToLadybugTools(); if (scheduleRuleset_Cooling != null && scheduleRuleset_Heating != null) { setpoint = new Setpoint(string.Format("{0}_Setpoint", uniqueName), scheduleRuleset_Cooling, scheduleRuleset_Heating, string.Format("Heating {0} Cooling {1}", profile_Heating.Name, profile_Cooling.Name)); Profile profile; if (dictionary.TryGetValue(ProfileType.Humidification, out profile)) { ScheduleRuleset scheduleRuleset = profile.ToLadybugTools(); if (scheduleRuleset != null) { setpoint.HumidifyingSchedule = scheduleRuleset; } } if (dictionary.TryGetValue(ProfileType.Dehumidification, out profile)) { ScheduleRuleset scheduleRuleset = profile.ToLadybugTools(); if (scheduleRuleset != null) { setpoint.DehumidifyingSchedule = scheduleRuleset; } } } } } } ProgramType result = new ProgramType( identifier: uniqueName, displayName: internalCondition.Name, userData: null, people: people, lighting: lighting, electricEquipment: electricEquipment, infiltration: infiltration, setpoint: setpoint); return(result); }