示例#1
0
        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);
        }
示例#2
0
        private async Task LoadAsync()
        {
            IsLoading = true;
            Beings.Clear();
            Beings.AddRange(await Api.GetBeingListAsync());
            IsLoading = false;

            StateHasChanged();
        }
示例#3
0
        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);
        }
示例#4
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);
 }