public ProjectileDecorator(IProjectileLogic p) { ProjectileLogic = p; ProtoProjectile tmp = (ProtoProjectile)ProjectileLogic.getUpperMost(); Game = tmp.Game; Scene = tmp.Scene; Input = tmp.Input; Projectile = tmp.Projectile; }
public ProjectileDecorator(IProjectileLogic p) { ProjectileLogic = p; ProtoProjectile tmp = (ProtoProjectile) ProjectileLogic.getUpperMost(); Game = tmp.Game; Scene = tmp.Scene; Input = tmp.Input; Projectile = tmp.Projectile; }
private IProjectileLogic decorate(ProjectileDecorators decoType, IProjectileLogic inner) { switch (decoType) { case ProjectileDecorators.TestBullet: return new TestBullet(inner); case ProjectileDecorators.BulletWallCollider: return new BulletWallCollider(inner); default: throw new NotImplementedException(); } }
private IProjectileLogic decorate(ProjectileDecorators decoType, IProjectileLogic inner) { switch (decoType) { case ProjectileDecorators.TestBullet: return(new TestBullet(inner)); case ProjectileDecorators.BulletWallCollider: return(new BulletWallCollider(inner)); default: throw new NotImplementedException(); } }
public TestBullet(IProjectileLogic p) : base(p) { if (_texture == null) _texture = new Texture("Resources/Bullet.png"); var image = new Image(_texture); var collider = new PolygonCollider(_basePolygon, CollidableTags.Bullet); Utilities.RotatePolygon(Projectile.DegOrientation + 90, collider, _basePolygon); Projectile.AddCollider(collider); Projectile.AddGraphic(image); image.Angle = Projectile.DegOrientation + 90; _direction = new Vector2(16 * ((float)Math.Sin(Projectile.DegOrientation * Util.DEG_TO_RAD)), 16 * ((float)Math.Cos(Projectile.DegOrientation * Util.DEG_TO_RAD))); }
public TestBullet(IProjectileLogic p) : base(p) { if (_texture == null) { _texture = new Texture("Resources/Bullet.png"); } var image = new Image(_texture); var collider = new PolygonCollider(_basePolygon, CollidableTags.Bullet); Utilities.RotatePolygon(Projectile.DegOrientation + 90, collider, _basePolygon); Projectile.AddCollider(collider); Projectile.AddGraphic(image); image.Angle = Projectile.DegOrientation + 90; _direction = new Vector2(16 * ((float)Math.Sin(Projectile.DegOrientation * Util.DEG_TO_RAD)), 16 * ((float)Math.Cos(Projectile.DegOrientation * Util.DEG_TO_RAD))); }
public BulletWallCollider(IProjectileLogic pLogic) : base(pLogic) { }
void Awake() { _movement = GetComponent <ProjectileMovementUnityContext>(); _logic = this.GetComponentByInterface <IProjectileLogic>(); }