示例#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 CChild(Entity mParent, CBody mCBody)
        {
            _parent = mParent;
            _cBody = mCBody;
            _parentBody = _parent.GetComponentUnSafe<CBody>();

            _parent.OnDestroy += () => Entity.Destroy();
        }
示例#3
0
 public CControl(GSGame mGame, CBody mCBody, CMovement mCMovement, CTargeter mCTargeter, CRender mCRender)
 {
     _game = mGame;
     _cBody = mCBody;
     _cMovement = mCMovement;
     _cTargeter = mCTargeter;
     _cRender = mCRender;
 }
示例#4
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;
 }
        public CPurifier(CBody mCBody, bool mEnemy)
        {
            _body = mCBody;

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

                                        var cPurification = entity.GetComponentUnSafe<CPurification>();
                                        cPurification.Purifying = !mEnemy;
                                     };
        }
示例#6
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 CMovement(CBody mCBody)
 {
     _cBody = mCBody;
 }
示例#8
0
 private CTargeter Targeter(CBody mCBody, string mTargetTag)
 {
     return new CTargeter(mCBody, mTargetTag);
 }
示例#9
0
 private CRender Render(CBody mCBody, string mTextureName, string mTilesetName = null, string mLabelName = null, float mRotation = 0)
 {
     return new CRender(_game, mCBody, mTextureName, mTilesetName, mLabelName, mRotation);
 }
示例#10
0
 private CPurifier Purifier(CBody mCBody, bool mEnemy)
 {
     return new CPurifier(mCBody, mEnemy);
 }
示例#11
0
 private CMovement Movement(CBody mCBody)
 {
     return new CMovement(mCBody);
 }
示例#12
0
 private CControl Control(CBody mCBody, CMovement mCMovement, CTargeter mCTargeter, CRender mCRender)
 {
     return new CControl(_game, mCBody, mCMovement, mCTargeter, mCRender);
 }
示例#13
0
 private CChild Child(Entity mParent, CBody mCBody)
 {
     return new CChild(mParent, mCBody);
 }
示例#14
0
 private CAI AI(CBody mCBody, CMovement mCMovement, CTargeter mCTargeter, CRender mCRender, bool mBig = false)
 {
     return new CAI(_game, mCBody, mCMovement, mCTargeter, mCRender, mBig);
 }
示例#15
0
 public CTargeter(CBody mCBody, string mTargetTag)
 {
     _cBody = mCBody;
     TargetTag = mTargetTag;
 }