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; }
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); }
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; }
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; }
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; }
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); }
public override void Init(IInitContext context, Settings.MiniGun settings, Vector2 center) { base.Init(context, settings, center); }