Пример #1
0
    public override void ViewRender()
    {
        base.ViewRender();

        TimedActionComponent taskComponent = ScheduleUtils.GetTask(Q, TaskType);

        if (taskComponent == null)
        {
            HideProgressBar();
            return;
        }

        RenderProgressBar(true);


        ProgressBarDescription.text = GetDescriptionByTask(taskComponent.CompanyTask);

        // set value
        float progress = ScheduleUtils.GetTaskCompletionPercentage(Q, taskComponent);

        ProgressBar.SetValue(progress);
        if (Slider != null)
        {
            Slider.value = (int)progress;
        }
    }
Пример #2
0
        private void CreateBossOne(int enemyBulletDelay, int scale = 1)
        {
            var xPosition = GameHelper.GetRelativeScaleX(0.5f);
            var enemy     = new GameObject("Boss", new Vector2(xPosition, 0))
            {
                Scale = scale
            };

            var shipTexture            = SpaceGraphics.BossAAsset.First();
            var enemySprite            = new SpriteComponent(shipTexture);
            var enemyMovement          = new MovementComponent(0.1f, FaceDirection.Down, new Vector2(0, 1));
            var enemyBullet            = new BulletComponent(TopDown.EnemyBulletName, SpaceGraphics.BulletAsset[0], enemyMovement);
            var enemyBoundary          = new BoundaryComponent(SpaceGraphics.BoundaryAsset.First(), shipTexture.Width, shipTexture.Height);
            var enemyTimed             = new TimedActionComponent(ObjectEvent.Fire, enemyBulletDelay);
            var enemyOutOfBounds       = new OutOfBoundsComponent(ObjectEvent.RemoveEntity);
            var healthCounterComponent = new CounterIncrementComponent(ObjectEvent.CollisionEnter, ObjectEvent.HealthRemoved, ObjectEvent.HealthEmpty, ObjectEvent.HealthReset, 5, 0);
            var healthBarComponent     = new SpriteRepeaterComponent(SpaceGraphics.HealthBarAsset[1], new Vector2(0, 25), false, ObjectEvent.HealthRemoved, healthCounterComponent);
            var deathAction            = new ObjectEventComponent(ObjectEvent.HealthEmpty, BossDeath);

            enemy.AddComponent(enemySprite);
            enemy.AddComponent(enemyMovement);
            enemy.AddComponent(enemyBullet);
            enemy.AddComponent(enemyBoundary);
            enemy.AddComponent(enemyOutOfBounds);
            enemy.AddComponent(enemyTimed);
            enemy.AddComponent(healthCounterComponent);
            enemy.AddComponent(healthBarComponent);
            enemy.AddComponent(deathAction);

            ForegroundLayer.AddGameObject(enemy);
        }
Пример #3
0
        public void Update(GameTime gameTime)
        {
            var enemyCount = _gameLayer.GameObjects.Count(gameObject => gameObject.GameType == _enemyName);

            _elapsedTimeMilliseconds += gameTime.ElapsedGameTime.TotalMilliseconds;

            if (_elapsedTimeMilliseconds > _spawnDelayMilliseconds &&
                enemyCount < _currentMaximumEnemies &&
                enemyCount < _totalMaximumEnemies)
            {
                _elapsedTimeMilliseconds = 0;
                var xLocation = _random.Next(0, GameConstants.ScreenBoundary.Right - _shipTexture.Width);

                var gameObject = new GameObject(_enemyName, new Vector2(xLocation, 0));
                var sprite     = new SpriteComponent(_shipTexture);
                var movement   = new MovementComponent(1, FaceDirection.Down, new Vector2(0, _speed));
                gameObject.AddComponent(sprite);
                gameObject.AddComponent(movement);

                var bullet      = new BulletComponent(_bulletName, SpaceGraphics.BulletAsset[0], movement, ignoreCollisionTypes: _enemyName);
                var timedAction = new TimedActionComponent(ObjectEvent.Fire, _bulletDelayMilliseconds);
                gameObject.AddComponent(bullet);
                gameObject.AddComponent(timedAction);

                var boundary    = new BoundaryComponent(SpaceGraphics.BoundaryAsset.First(), _shipTexture.Width, _shipTexture.Height, true, false, _enemyName);
                var instance    = new InstanceComponent();
                var outOfBounds = new OutOfBoundsComponent(ObjectEvent.RemoveEntity);
                gameObject.AddComponent(boundary);
                gameObject.AddComponent(instance);
                gameObject.AddComponent(outOfBounds);

                var score           = new ObjectEventComponent(ObjectEvent.CollisionEnter, IncreaseScore);
                var deathSound      = new EventSoundComponent(_deathSound, ObjectEvent.CollisionEnter);
                var collisionAction = new ObjectEventComponent(ObjectEvent.CollisionEnter, CollisionAction);
                gameObject.AddComponent(score);
                gameObject.AddComponent(deathSound);
                gameObject.AddComponent(collisionAction);

                foreach (var objectEventAction in _eventActions)
                {
                    var objectEvent = new ObjectEventComponent(objectEventAction.Item1, objectEventAction.Item2);
                    gameObject.AddComponent(objectEvent);
                }

                _gameLayer.AddGameObject(gameObject);
            }
        }
Пример #4
0
        public static void ProcessTask(TimedActionComponent taskComponent, GameContext gameContext)
        {
            var task = taskComponent.CompanyTask;

            switch (task.CompanyTaskType)
            {
            case CompanyTaskType.ExploreMarket: ExploreMarket(task, gameContext); break;

            case CompanyTaskType.ExploreCompany: ExploreCompany(task, gameContext); break;

            case CompanyTaskType.AcquiringCompany: AcquireCompany(task); break;

            case CompanyTaskType.UpgradeFeature: UpgradeFeature(task, gameContext); break;

            case CompanyTaskType.ReleasingApp: ReleaseApp(task); break;

            case CompanyTaskType.TestCampaign: TestCampaign(task, gameContext); break;

            case CompanyTaskType.RegularCampaign: RegularCampaign(task, gameContext); break;

            case CompanyTaskType.BrandingCampaign: BrandingCampaign(task, gameContext); break;
            }
        }
Пример #5
0
        public static float GetTaskCompletionPercentage(GameContext gameContext, TimedActionComponent taskComponent)
        {
            int CurrentIntDate = GetCurrentDate(gameContext);

            return((CurrentIntDate - taskComponent.StartTime) * 100f / taskComponent.Duration);
        }
Пример #6
0
    public void SetEntity(TimedActionComponent task)
    {
        TaskComponent = task;

        Render();
    }
Пример #7
0
 public static void ProcessTask(TimedActionComponent taskComponent, GameContext gameContext) => ProcessTask(taskComponent.CompanyTask, gameContext);