private void InitializeSenses(SequentialMessageQueue <GameManager> queue) { Add <SensorComponent>(EntityComponent.Sensor, poolSize: 32); SensorySystem = new SensorySystem(); queue.Add <TraveledMessage>(SensorySystem, TravelSystem.TraveledMessageName, 3); queue.Add <EntityAddedMessage <GameEntity> >(SensorySystem, Beings.GetEntityAddedMessageName(), 1); }
private async Task LoadAsync() { IsLoading = true; Beings.Clear(); Beings.AddRange(await Api.GetBeingListAsync()); IsLoading = false; StateHasChanged(); }
private void InitializeFaculties(SequentialMessageQueue <GameManager> queue) { BeingToPrimaryNaturalWeaponRelationship = new UniqueEntityRelationship <GameEntity>( nameof(BeingToPrimaryNaturalWeaponRelationship), Beings, EntityItems, new SimpleKeyValueGetter <GameEntity, int>( component => ((BeingComponent)component).PrimaryNaturalWeaponId, (int)EntityComponent.Being), (effectEntity, _, __) => effectEntity.Being.PrimaryNaturalWeaponId = null, referencedKeepAlive: true, referencingKeepAlive: false); BeingToSecondaryNaturalWeaponRelationship = new UniqueEntityRelationship <GameEntity>( nameof(BeingToSecondaryNaturalWeaponRelationship), Beings, EntityItems, new SimpleKeyValueGetter <GameEntity, int>( component => ((BeingComponent)component).SecondaryNaturalWeaponId, (int)EntityComponent.Being), (effectEntity, _, __) => effectEntity.Being.SecondaryNaturalWeaponId = null, referencedKeepAlive: true, referencingKeepAlive: false); SkillAbilitiesSystem = new SkillAbilitiesSystem(); queue.Add <ItemEquippedMessage>(SkillAbilitiesSystem, ItemUsageSystem.ItemEquippedMessageName, 4); queue.Add <PropertyValueChangedMessage <GameEntity, ExtremityType> >(SkillAbilitiesSystem, Beings.GetPropertyValueChangedMessageName(nameof(BeingComponent.UpperExtremities)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.HandWeapons)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.ShortWeapons)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.MediumWeapons)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.LongWeapons)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.CloseRangeWeapons)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.ShortRangeWeapons)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.MediumRangeWeapons)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.LongRangeWeapons)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.LightArmor)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.HeavyArmor)), 0); queue.Add <PropertyValueChangedMessage <GameEntity, int> >(SkillAbilitiesSystem, Players.GetPropertyValueChangedMessageName(nameof(PlayerComponent.Artifice)), 0); }
public void Update(GameTime gameTime) { Level.Update(gameTime); Globals.Camera.Update(gameTime); Beings.ForEach(b => b.Update(gameTime)); Enemies = Enemies.Where(e => e.IsActive).ToList(); Enemies.ForEach(e => e.GetAI().Run(gameTime)); Allies = Allies.Where(e => e.IsActive).ToList(); Allies.ForEach(e => e.GetAI().Run(gameTime)); Missiles = Missiles.Where(m => m.IsActive).ToList(); Missiles.ForEach(m => m.Update(gameTime)); Items = Items.Where(i => i.IsActive).ToList(); Items.ForEach(i => i.Update(gameTime)); DamageTexts = DamageTexts.Where(d => d.IsActive).ToList(); DamageTexts.ForEach(d => d.Update(gameTime)); EnemyCreatorFactory.Update(gameTime); }