Exemplo n.º 1
0
 public void Init(IInitContext context, Settings.Battle settings, Settings.Enemies enemiesSettings, Settings.Weapon[] weaponsSettings, Settings.Size windowSize)
 {
     base.Init(new Point(windowSize.Width, windowSize.Height));
     initContext          = context;
     this.settings        = settings;
     this.weaponsSettings = weaponsSettings;
     Health     = settings.Health;
     Amount     = settings.Amount;
     WeaponPods = new WeaponPod[settings.WeaponPlaces.Length];
     for (int i = 0; i < settings.WeaponPlaces.Length; i++)
     {
         var setting = settings.WeaponPlaces[i];
         var wp      = context.ObjectPool.GetObject <WeaponPod>();
         wp.Init(setting);
         WeaponPods[i] = wp;
     }
     Waves = new EnemyWave[settings.Waves.Length];
     for (int i = 0; i < settings.Waves.Length; i++)
     {
         var setting = settings.Waves[i];
         var wave    = context.ObjectPool.GetObject <EnemyWave>();
         wave.Init(context, setting, enemiesSettings, settings.Paths);
         Waves[i] = wave;
     }
     changeStatusSubscription = context.Dispatcher.Subscribe <ChangeStatusMessage>(OnChangeStatus);
     Status = BattleSceneStatus.Active;
 }
Exemplo n.º 2
0
 public virtual void Init(IInitContext context, T settings, Vector2 center)
 {
     base.Init();
     Settings            = settings;
     Center              = center;
     IsEnabled           = true;
     FiringState         = FiringState.Idle;
     FireColorTransition = Globals.ObjectPool.GetObject <ColorTransitionAction>().WithStartColor(Color.Red);
 }
Exemplo n.º 3
0
 public void Init(IInitContext context, Settings.Enemy settings, Path path)
 {
     this.settings = settings;
     Path          = path;
     dispatcher    = context.Dispatcher;
     Center        = Vector2.Zero;
     Status        = EnemyStatus.Ready;
     Health        = settings.Health;
 }
        public void Init(IInitContext context, Settings.Master settings, Settings.Size windowSize)
        {
            this.windowSize = windowSize;
            var scene         = context.ObjectPool.GetObject <BattleScene>();
            var sceneSettings = settings.Battles[0];

            scene.Init(context, sceneSettings, settings.Enemies, settings.Weapons.FromNames(sceneSettings.WeaponNames), windowSize);
            CurrentScene = scene;
        }
Exemplo n.º 5
0
 public void Init(IInitContext context, Settings.EnemySet settings, Settings.Enemy enemySettings, Settings.Path pathSettings)
 {
     initContext   = context;
     this.settings = settings;
     Path          = context.ObjectPool.GetObject <Path>();
     Path.Init(pathSettings);
     this.enemySettings = enemySettings;
     enemies            = context.ObjectPool.GetObject <List <Enemy> >();
     completedEnemies   = context.ObjectPool.GetObject <List <Enemy> >();
     enemyTemplate      = EnemyFactory.GetEnemyFromPool(context.ObjectPool, enemySettings);
     logger.Info($"Wave {settings.Id} init");
     Relative = TimeSpan.FromMilliseconds(settings.StartTimeOffset);
     Status   = EnemySetStatus.Ready;
 }
Exemplo n.º 6
0
 public void Init(IInitContext context, Settings.EnemyWave settings, Settings.Enemies enemiesSettings, Settings.Path[] pathsSettings)
 {
     initContext   = context;
     this.settings = settings;
     logger.Info($"Wave {settings.Id} init");
     //Relative = TimeSpan.FromMilliseconds(settings.StartTimeOffset);
     Sets = new EnemySet[settings.Sets.Length];
     for (int i = 0; i < settings.Sets.Length; i++)
     {
         var setting       = settings.Sets[i];
         var set           = context.ObjectPool.GetObject <EnemySet>();
         var enemySettings = enemiesSettings.GetEnemyById(setting.EnemyId);
         var pathSettings  = pathsSettings.Single(p => string.Equals(p.Id, setting.PathId, StringComparison.Ordinal));
         set.Init(context, setting, enemySettings, pathSettings);
         Sets[i] = set;
     }
     Status = EnemyWaveStatus.Ready;
 }
Exemplo n.º 7
0
        public static IWeapon GetWeaponFromPool <TSettings>(IInitContext context, TSettings settings, Vector2 center)
            where TSettings : Settings.Weapon
        {
            IWeapon weapon;

            switch (settings)
            {
            case Settings.MiniGun miniGunSettings:
                var miniGun = context.ObjectPool.GetObject <MiniGun>();
                miniGun.Init(context, miniGunSettings, center);
                weapon = miniGun;
                break;

            //case Settings.Vulcan vulcan:
            //    weapon = pool.GetObject<Vulcan>();
            //    break;
            default:
                throw new ArgumentException($"No matching weapon for {typeof(TSettings)}", nameof(settings));
            }
            return(weapon);
        }
Exemplo n.º 8
0
 public override void Init(IInitContext context, Settings.MiniGun settings, Vector2 center)
 {
     base.Init(context, settings, center);
 }