public Bat(Vector2 position, PhysicObj target) : base(position, target) { height = 0; Animation anim = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("Ennemy1/ennemy1"), 8, 0.1f, 32, 0, 0, 0); anim.reset(); addAnimation(anim); Animation attackAnimation = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("Ennemy1/ennemy1attack"), 6, 0.1f, 32, 0, 0, 0); attackAnimation.isLooping = false; addAnimation(attackAnimation); Bloodbender.ptr.shadowsRendering.addShadow(new Shadow(this)); velocity = 50; fixture = createOctogoneFixture(16f, 16f, Vector2.Zero, new AdditionalFixtureData(this, HitboxType.BOUND)); Radius = 32f; //add method to be called on collision, different denpending of fixture addFixtureToCheckedCollision(fixture); IComponent comp = new FollowBehaviorComponent(this, target, 32); addComponent(comp); cacAttack = true; }
public GangMinion(Vector2 position, GangChef chef, PhysicObj target) : base(position, target) { height = 0; lifePoints = 2; Animation anim = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("GangMinion/goblinrun"), 5, 0.1f, 0, 0, 0, 0); anim.reset(); addAnimation(anim); Animation attackAnimation = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("GangMinion/goblinattack"), 7, 0.1f, 0, 0, 0, 0); attackAnimation.isLooping = false; addAnimation(attackAnimation); Animation scaredAnimation = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("GangMinion/goblinrunscream"), 5, 0.1f, 0, 0, 0, 0); //scaredAnimation.isLooping = false; addAnimation(scaredAnimation); Bloodbender.ptr.shadowsRendering.addShadow(new Shadow(this)); scale = new Vector2(1.35f, 1.35f); this.chef = chef; velocity = 35; fixture = createOctogoneFixture(40f, 40f, Vector2.Zero, new AdditionalFixtureData(this, HitboxType.BOUND)); Radius = 50f; //add method to be called on collision, different denpending of fixture addFixtureToCheckedCollision(fixture); fixture.OnCollision += Collision; followBehavior = new FollowBehaviorComponent(this, chef.node, 3); addComponent(followBehavior); distanceAttackWithTarget = 250; canAttack = true; canGenerateProjectile = false; canBeHitByPlayer = false; canBeHitByProjectile = false; bloodSpawner.scaleRef = 1.25f; }
public PartnerFar(Vector2 position, PhysicObj target) : base(position, target) { height = 0; Animation anim = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("Pair/coursePair2"), 7, 0.1f, 0, 0, 0, 0); anim.reset(); addAnimation(anim); Animation attackAnimation = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("Pair/attackPair2"), 7, 0.075f, 0, 0, 0, 0); attackAnimation.isLooping = false; addAnimation(attackAnimation); Bloodbender.ptr.shadowsRendering.addShadow(new Shadow(this)); fixture = createOctogoneFixture(50f, 50f, Vector2.Zero, new AdditionalFixtureData(this, HitboxType.BOUND)); Radius = 50f; velocity = _initialVelocity; addFixtureToCheckedCollision(fixture); _node = new PhysicObj(new Vector2(position.X, position.Y), PathFinderNodeType.CENTER); _node.createOctogoneFixture(10, 10, Vector2.Zero, new AdditionalFixtureData(_node, HitboxType.BOUND)).IsSensor = true; _node.Radius = 10.0f; IComponent comp = new KeepDistanceComponent(300, Bloodbender.ptr.player, _node, this); _node.addComponent(comp); IComponent comp2 = new FollowBehaviorComponent(this, _node, 0); addComponent(comp2); distanceAttackWithTarget = 400; canAttack = true; canGenerateProjectile = true; canBeHitByPlayer = false; canBeHitByProjectile = false; }
public PartnerClose(Vector2 position, PhysicObj target) : base(position, target) { height = 0; Animation anim = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("Pair/coursePair1"), 7, 0.1f, 0, 0, 0, 0); anim.reset(); addAnimation(anim); Animation attackAnimation = new Animation(Bloodbender.ptr.Content.Load <Texture2D>("Pair/attackPair1"), 9, 0.075f, 0, 0, 0, 0); attackAnimation.isLooping = false; addAnimation(attackAnimation); Bloodbender.ptr.shadowsRendering.addShadow(new Shadow(this)); fixture = createOctogoneFixture(50f, 50f, Vector2.Zero, new AdditionalFixtureData(this, HitboxType.BOUND)); Radius = 50f; velocity = 30; fixture.OnCollision += Collision; addFixtureToCheckedCollision(fixture); Partner = null; IComponent comp = new FollowBehaviorComponent(this, target, 40f); addComponent(comp); distanceAttackWithTarget = 50; lifePoints = 2; canAttack = true; canGenerateProjectile = false; canBeHitByPlayer = false; canBeHitByProjectile = true; cacAttack = true; }