Ejemplo n.º 1
0
        public Enemy(Level level, SceneGraphNode node, Vector3 relativeStartPos, Bullet.Factory createBullet)
        {
            Node = node;
            node.AssociatedObject = this;

            this.level        = level;
            this.createBullet = createBullet;
            player            = level.LocalPlayer;

            bodyNode          = Node.CreateChild();
            bodyNode.Relative = Matrix.Scaling(2, 2, 2) * Matrix.RotationZ(-(float)Math.PI * 0.05f);
            var bodyEnt = level.CreateEntityNode(bodyNode.CreateChild());

            bodyEnt.Mesh = TW.Assets.LoadMesh("Scattered\\Models\\EnemyRobotParts\\Body");

            sightNode     = bodyNode.CreateChild();
            sightEnt      = level.CreateEntityNode(sightNode.CreateChild());
            sightEnt.Mesh = TW.Assets.LoadMesh("Scattered\\Models\\EnemyRobotParts\\Sight_red");

            tailNode          = bodyNode.CreateChild();
            tailNode.Relative = Matrix.Translation(new Vector3(0, -0.05f, 0));
            tailEnt           = level.CreateEntityNode(tailNode.CreateChild());
            tailEnt.Mesh      = TW.Assets.LoadMesh("Scattered\\Models\\EnemyRobotParts\\Tail");

            propellorAxesNode          = bodyNode.CreateChild();
            propellorAxesNode.Relative = Matrix.Translation(new Vector3(-0.02f, -0.05f, 0));
            var axesEnt = level.CreateEntityNode(propellorAxesNode.CreateChild());

            axesEnt.Mesh = TW.Assets.LoadMesh("Scattered\\Models\\EnemyRobotParts\\PropellorAxes");

            propellorLeftNode          = propellorAxesNode.CreateChild();
            propellorLeftNode.Relative = Matrix.Translation(new Vector3(-0.02f, 0.212f, 0.585f));
            propLeftEnt      = level.CreateEntityNode(propellorLeftNode.CreateChild());
            propLeftEnt.Mesh = TW.Assets.LoadMesh("Scattered\\Models\\EnemyRobotParts\\Propellor");

            propellorRightNode          = propellorAxesNode.CreateChild();
            propellorRightNode.Relative = Matrix.Translation(new Vector3(-0.02f, 0.212f, -0.585f));
            propRightEnt      = level.CreateEntityNode(propellorRightNode.CreateChild());
            propRightEnt.Mesh = TW.Assets.LoadMesh("Scattered\\Models\\EnemyRobotParts\\Propellor");



            Node.Relative = Matrix.Translation(relativeStartPos + new Vector3(0, idleHeight, 0));
            currentHeight = idleHeight;

            Vector3    s;
            Quaternion r;

            Node.Absolute.Decompose(out s, out r, out currentPos);
            currentRotation = new Vector3();

            newPos      = currentPos;
            newRotation = currentRotation;

            startLocation    = currentPos + new Vector3(0, patrolHeight - idleHeight, 0);
            LocalBoundingBox = new Vector3(2, 2, 2).CenteredBoundingbox();

            level.AddBehaviour(node, update);
        }
Ejemplo n.º 2
0
 public PlayerShootHandler(PlayerInputState inputState, Bullet.Factory bulletFactory, Settings settings, Player player, AudioPlayer audioPlayer)
 {
     _audioPlayer   = audioPlayer;
     _player        = player;
     _settings      = settings;
     _bulletFactory = bulletFactory;
     _inputState    = inputState;
 }
Ejemplo n.º 3
0
 public TowerShooting(Tower tower,
                      Bullet.Factory factory)
 {
     _tower             = tower;
     _bulletFactory     = factory;
     TowerShootingState = ShootingState.NoTarget;
     _shootCD           = _tower.TowerParameters.AttackDelay;
 }
Ejemplo n.º 4
0
 public ShootHandler(
     Transform transform,
     Settings settings,
     Bullet.Factory bulletFactory)
 {
     this.bulletFactory = bulletFactory;
     this.settings      = settings;
     this.transform     = transform;
     throttledShoot     = ThrottledFunction.ThrottleByRate(DoShoot, this.settings.fireRate);
 }
Ejemplo n.º 5
0
 public PlayerShootHandler(
     PlayerInputState inputState,
     Bullet.Factory bulletFactory,
     Settings settings,
     PlayerModel player)
 {
     _player = player;
     _settings = settings;
     _bulletFactory = bulletFactory;
     _inputState = inputState;
 }
Ejemplo n.º 6
0
        public Weapon(WeaponCharger weaponCharger, PlayerState playerState, Bullet.Factory bulletFactory, Settings weaponSettings, Transform weaponTransform, SignalBus bus)
        {
            this.weaponCharger   = weaponCharger;
            this.playerState     = playerState;
            this.bulletFactory   = bulletFactory;
            this.weaponSettings  = weaponSettings;
            this.weaponTransform = weaponTransform;
            this.bulletSpeed     = this.weaponSettings.BulletSpeed;

            bus.Subscribe <PlayerState.SpeedChanged>(this.OnPlayerSpeedChanged);
        }
Ejemplo n.º 7
0
 public ShootHandler(
     Transform transform,
     Rigidbody2D rigidbody,
     Bullet.Factory bulletFactory,
     Settings settings)
 {
     this.transform     = transform;
     this.rigidbody     = rigidbody;
     this.bulletFactory = bulletFactory;
     this.settings      = settings;
     throttledShoot     = ThrottledFunction.ThrottleByRate(DoShoot, settings.fireRate);
 }
Ejemplo n.º 8
0
    public void Construct(Vector3 position,
                          TowerData towerData,
                          CreepsManager creepsManager,
                          Bullet.Factory bulletFactory)
    {
        TowerData       = towerData;
        TowerParameters = new TowerParameters(TowerData);
        _towerVisual    = new TowerVisual(this, TowerData);
        _towerTargeting = new TowerTargeting(this, creepsManager);
        _towerShooting  = new TowerShooting(this, bulletFactory);

        gameObject.transform.position = position;
        _towerVisual.SetupVisual();
    }
Ejemplo n.º 9
0
 public EnemyStateAttack(
     Bullet.Factory bulletFactory,
     EnemyModel model,
     Settings settings,
     PlayerFacade player,
     EnemyStateManager stateManager,
     EnemyTunables tunables)
 {
     _tunables = tunables;
     _stateManager = stateManager;
     _player = player;
     _settings = settings;
     _model = model;
     _bulletFactory = bulletFactory;
     _strafeRight = Random.Range(0.0f, 1.0f) < 0.5f;
 }
Ejemplo n.º 10
0
 public EnemyStateAttack(
     Bullet.Factory bulletFactory,
     EnemyModel model,
     Settings settings,
     PlayerFacade player,
     EnemyStateManager stateManager,
     EnemyTunables tunables)
 {
     _tunables      = tunables;
     _stateManager  = stateManager;
     _player        = player;
     _settings      = settings;
     _model         = model;
     _bulletFactory = bulletFactory;
     _strafeRight   = Random.Range(0.0f, 1.0f) < 0.5f;
 }
 public EnemyStateAttack(
     Bullet.Factory bulletFactory,
     EnemyView view,
     Settings settings,
     PlayerFacade player,
     EnemyStateManager stateManager,
     EnemyTunables tunables,
     AudioPlayer audioPlayer,
     EnemyCommonSettings commonSettings,
     EnemyRotationHandler rotationHandler)
 {
     _rotationHandler = rotationHandler;
     _commonSettings  = commonSettings;
     _audioPlayer     = audioPlayer;
     _tunables        = tunables;
     _stateManager    = stateManager;
     _player          = player;
     _settings        = settings;
     _view            = view;
     _bulletFactory   = bulletFactory;
     _strafeRight     = Random.Range(0.0f, 1.0f) < 0.5f;
 }