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; } }; }
public CControl(GSGame mGame, CBody mCBody, CMovement mCMovement, CTargeter mCTargeter, CRender mCRender) { _game = mGame; _cBody = mCBody; _cMovement = mCMovement; _cTargeter = mCTargeter; _cRender = mCRender; }
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 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); }