internal Mage(Vector2f start, string name) { playerX = destX = (int)start.X; playerY = destY = (int)start.Y; type = MoveableEnum.mage; circleSize = PLAYER_CIRCLE_SZ; currentHp = maxHp = MAGE_HP; this.name = name; innerCircle = COLLISION_RADIUS; buffs = new Buffs(this); model = new SimpleModel(pyroBaseTexture, SimpleModel.CLASS_RECT, SimpleModel.CLASS_SCALE); boundingRect = SimpleModel.CLASS_BOUNDING_RECT; //ability1, fireball, repeating a1 = new Cooldown(FIREBALL_CD); fireballRepeat = true; bigFireballRepeat = true; //ability2 big fireball, everytime you use ability one, //you have a chance(60%), gain a stacking buff til 10, then you do a big fireball sb1 = new StackingBuff(this, BIGFIREBALL_STACK); weaponPlayer = new WeaponPlayer(pyroWepAnimations, .3f, .75f); }
internal CheckDPSBoss(Vector2f v) : base(v) { enemyCooldowns = new Cooldown[0]; currentHp = maxHp = BOSS_HP; currentTexture = bossCircleTexture; innerCircle = 150; circleSize = 330; }
internal GroundEffect(Vector2f mid, double gameTime,float lengthSec, Texture texture) { mPos = mid; this.texture = texture; sprite = new Sprite(texture); circleSize = (int)texture.Size.X/2; disappear = new Cooldown(lengthSec); disappear.use(gameTime); }
internal BasicAdd(Vector2f v, Moveable spawnOn, BossI parent) : base(v, MoveableEnum.add) { enemyCooldowns = new Cooldown[1]; enemyCooldowns[0] = new Cooldown(MELEE_CD); currentHp = maxHp = ADD_HP; circleSize = 25; innerCircle = 10; updateThreat(spawnOn, SPAWNTHREAT); reOrgThreat(); currentTexture = basicAddTexture; this.parent = parent; }
//define your cooldowns and base stats internal BuseyBoss(Vector2f v) : base(v) { enemyCooldowns = new Cooldown[4]; enemyCooldowns[(int)cooldowns.volley] = new Cooldown(VOLLEY_CD); enemyCooldowns[(int)cooldowns.melee] = new Cooldown(MELEE_CD); enemyCooldowns[(int)cooldowns.groundFire] = new Cooldown(GROUNDFIRE_CD); enemyCooldowns[(int)cooldowns.spawnAdds] = new Cooldown(SPAWNADDS_CD); currentHp = maxHp = BOSS_HP; currentTexture = bossCircleTexture; innerCircle = INNERCIRCLE; circleSize = CIRCLE_SZ; }
internal EdwardDog(Vector2f start, BossFight bf) : base(start) { myBossFight = bf; enemyCooldowns = new Cooldown[1]; currentHp = maxHp = DOG_HP; currentTexture = bossCircleTexture; innerCircle = 30; circleSize = 75; enemyCooldowns[0] = new Cooldown(MELEE_CD); leashSprite = new Sprite(leashTexture); }
internal GroundEffect(Vector2f mid, int effectID, Func<Moveable, bool> doA, double gameTime) { mPos = mid; doAbility = doA; switch (effectID) {//TODO redo with enums? case 1: texture = groundFireTexture; circleSize = 25; disappear = new Cooldown(3); disappear.use(gameTime); break; } }
internal GoodFraiser(Vector2f start, string name) { playerX = destX = (int)start.X; playerY = destY = (int)start.Y; type = MoveableEnum.player; circleSize = 50; currentTexture = puriCircleTexture; currentHp = maxHp = MAX_HP; this.name = name; innerCircle = 20; //ability1, aoeheal, repeating a1 = new Cooldown(AOEHEAL_CD); //ability2 bigheal lowest 2 percent target that wont overheal a2 = new Cooldown(BIGHEAL_CD); //ability3 small aoe dispell aura, that also silences them TODO a3 = new Cooldown(DISPELL_CD); }
internal Assassin(Vector2f start, string name) { playerX = destX = (int)start.X; playerY = destY = (int)start.Y; circleSize = PLAYER_CIRCLE_SZ; currentHp = maxHp = ASSASSIN_HP; this.name = name; innerCircle = COLLISION_RADIUS; model = new SimpleModel(assaBaseTexture, SimpleModel.CLASS_RECT, SimpleModel.CLASS_SCALE); boundingRect = SimpleModel.CLASS_BOUNDING_RECT; //ability1, a1 = new Cooldown(MELEE_CD); //ability 2 a2 = new Cooldown(STUN_CD); weaponPlayer = new WeaponPlayer(assaWepAnimation, new float[] {.15f,.3f}, .75f); }
internal Bard(Vector2f start, string name) { playerX = destX = (int)start.X; playerY = destY = (int)start.Y; circleSize = PLAYER_CIRCLE_SZ; currentHp = maxHp = BARD_HP; this.name = name; innerCircle = COLLISION_RADIUS; buffs = new Buffs(this); model = new SimpleModel(bardBaseTexture, SimpleModel.CLASS_RECT, SimpleModel.CLASS_SCALE); boundingRect = SimpleModel.CLASS_BOUNDING_RECT; a1 = new Cooldown(BUFF_TIME); weaponPlayer = new WeaponPlayer(bardWepAnimation, .1f, .75f); buffDmgBeamSprite = new Sprite(buffDmgBeamTexture); buffCDBeamSprite = new Sprite(buffCDBeamTexture); }
internal Archer(Vector2f start, string name) { playerX = destX = (int)start.X; playerY = destY = (int)start.Y; circleSize = PLAYER_CIRCLE_SZ; currentHp = maxHp = ARCHER_HP; this.name = name; innerCircle = COLLISION_RADIUS; buffs = new Buffs(this); model = new SimpleModel(archBaseTexture, SimpleModel.CLASS_RECT, SimpleModel.CLASS_SCALE); boundingRect = SimpleModel.CLASS_BOUNDING_RECT; //ability1, a1 = new Cooldown(MELEE_CD); //ability 2 a2 = new Cooldown(BIGHIT_CD); stack = new StackingBuff(BIGHIT_STACK_NEEDED); weaponPlayer = new WeaponPlayer(archWepAnimation, .3f, .75f); }
internal Vanguard(Vector2f start, string name) { playerX = destX = (int)start.X; playerY = destY = (int)start.Y; type = MoveableEnum.puri; circleSize = PLAYER_CIRCLE_SZ; //currentTexture = vangCircleTexture; currentHp = maxHp = VANGUARD_HP; this.name = name; innerCircle = COLLISION_RADIUS; buffs = new Buffs(this); model = new SimpleModel(vangBaseTexture, SimpleModel.CLASS_RECT,.75f); boundingRect = SimpleModel.CLASS_BOUNDING_RECT; //ability1, a1 = new Cooldown(TANKHIT_CD,true); //ability 2 a2 = new Cooldown(TANKAOE_CD); weaponPlayer = new WeaponPlayer(vangWepAnimations,.2f, .75f); }
internal TomHanks(Vector2f v) : base(v) { enemyCooldowns = new Cooldown[3]; enemyCooldowns[(int)cooldowns.volley] = new Cooldown(VOLLEY_CD); enemyCooldowns[(int)cooldowns.melee] = new Cooldown(MELEE_CD); enemyCooldowns[(int)cooldowns.spawnAdds] = new Cooldown(SPAWNADDS_CD); currentHp = maxHp = BOSS_HP; currentTexture = bossCircleTexture; innerCircle = 145; circleSize = 300; }
Buff hungered; //just a reference to it #endregion Fields #region Constructors //define your cooldowns and base stats internal Ursidor(Vector2f v,FightObject fish) : base(v) { enemyCooldowns = new Cooldown[3]; enemyCooldowns[(int)cooldowns.melee] = new Cooldown(MELEE_CD); enemyCooldowns[(int)cooldowns.swipe] = new Cooldown(SWIPE_CD); enemyCooldowns[(int)cooldowns.hungry] = new Cooldown(HUNGRY_CD); currentHp = maxHp = BOSS_HP; model = new SimpleModel(ursiBaseTexture, new IntRect(0,0,120,210), MODEL_SCALE,2.3f); boundingRect = new IntRect(0, 0, 80, 160);//bad rect im sure innerCircle = INNERCIRCLE; circleSize = CIRCLE_SZ; this.fish = fish; }
internal FishObject(Vector2f position) : base(fishText, position, new IntRect(0, 0, 24, 20), true) { flutter = new Cooldown(5.0f); flutterAni = new Animation(fishText, new Vector2f(0,0), 2, new Vector2f(24, 20), .3f, Animation.Type.fronttobacktofrontend, "flutter"); }
internal Puri(Vector2f start, string name) { playerX = destX = (int)start.X; playerY = destY = (int)start.Y; type = MoveableEnum.puri; circleSize = PLAYER_CIRCLE_SZ; currentHp = maxHp = PURI_HP; this.name = name; innerCircle = COLLISION_RADIUS; boundingRect = SimpleModel.CLASS_BOUNDING_RECT; model = new SimpleModel(puriBaseTexture, SimpleModel.CLASS_RECT, SimpleModel.CLASS_SCALE); //ability1, aoeheal, repeating a1 = new Cooldown(AOEHEAL_CD); //ability2 bigheal lowest % target that wont overheal (cant heal mages?) a2 = new Cooldown(BIGHEAL_CD); weaponPlayer = new WeaponPlayer(puriWepAnimation, new float[] { .3f, .3f }, .75f); }
internal EvilFraiser(Vector2f v, EdwardDog ed) : base(v) { enemyCooldowns = new Cooldown[3]; enemyCooldowns[(int)cooldowns.volley] = new Cooldown(VOLLEY_CD); enemyCooldowns[(int)cooldowns.melee] = new Cooldown(MELEE_CD); enemyCooldowns[(int)cooldowns.bite] = new Cooldown(BITE_CD); currentHp = maxHp = BOSS_HP; currentTexture = bossCircleTexture; innerCircle = 40; circleSize = 100; dog = ed; }