Пример #1
0
        public CAI(GSGame mGame, CBody mCBody, CMovement mCMovement, CTargeter mCTargeter, CRender mCRender, bool mBig)
        {
            _game = mGame;
            _cBody = mCBody;
            _cTargeter = mCTargeter;
            _cMovement = mCMovement;
            _cRender = mCRender;
            _shootDelay = Utils.Random.Next(0, 80);
            _big = mBig;

            if (_big)
            {
                _shootDelayMax = 150;
                _speedMax = 60;
            }

            mCBody.OnCollision += (mCollisionInfo) =>
                                  {
                                      var entity = (Entity)mCollisionInfo.UserData;

                                      if (entity.HasTag(Tags.Wall))
                                      {
                                          _angle += 180 + Utils.Random.Next(-45, 45);
                                          _speed = Utils.Random.Next(0, 100);
                                          _rotationSpeed = 0.002f;
                                      }
                                  };
        }
Пример #2
0
 public CControl(GSGame mGame, CBody mCBody, CMovement mCMovement, CTargeter mCTargeter, CRender mCRender)
 {
     _game = mGame;
     _cBody = mCBody;
     _cMovement = mCMovement;
     _cTargeter = mCTargeter;
     _cRender = mCRender;
 }
Пример #3
0
 public CRender(GSGame mGame, CBody mCBody, string mTextureName, string mTilesetName = null, string mLabelName = null, float mRotation = 0)
 {
     _game = mGame;
     _cBody = mCBody;
     _textureName = mTextureName;
     _tilesetName = mTilesetName;
     _labelName = mLabelName;
     _rotation = mRotation;
 }
Пример #4
0
        public CShield(GSGame mGame, CBody mCBody)
        {
            _game = mGame;
            _body = mCBody;

            _body.OnCollision += (mCollisionInfo) =>
                                     {
                                         var entity = (Entity) mCollisionInfo.UserData;
                                     if (!entity.HasTag(Tags.BulletBlack) || entity.IsDead) return;

                                     var cMovement = entity.GetComponentUnSafe<CMovement>();
                                     var speed = cMovement.Speed;
                                     var angle = cMovement.Angle;

                                     entity.Destroy();

                                     _game.Factory.Bullet(_body.Position.X, _body.Position.Y, 180 + angle, (int)speed, false);
                                 };
        }
 public CPurification(GSGame mGame, CRender mCRender)
 {
     _game = mGame;
     _cRender = mCRender;
     _shootDelay = Utils.Random.Next(0, 100);
 }