internal void doBite(Moveable m) { if (isDead()) return; dState = dogState.biting; biteTarget = m; InGame.getInstance().addScreenNote("BITE ON "+m.getName()); }
internal override void Update(double gameTime) { base.Update(gameTime); aggro = getFirstThreat(); if (currentHp <= 0) { myBossFight.initPhase(3);//EFF make it so it doesnt spam this?buts ok i guess wipeAllThreat(); return; } else if (dState == dogState.p1 && getHPpercent() <= PHASE_2_TRANSITION_PERCENT) { dState = dogState.p2; myBossFight.initPhase(2); } if (aggro == null) {//if no one has aggro put cooldowns on CD (start of fight) //enemyCooldowns[(int)cooldowns.spawnAdds].use(gameTime); return; } //try biting if (dState == dogState.biting) { if (checkRangeAndMove(biteTarget.getMid(), BITE_RANGE, gameTime)) {//get close } else {// then bite //InGame.getInstance().addProjectile(new Projectile(this, getMid(), biteTarget, doMelee, meleeProjectileTexture, meleeProjectileRect)); if (InGame.isInRange(getMid(), biteTarget.getMid(), BITE_RANGE)) {//idk how it gets to this if it is still runnning Buff b = new Buff(gameTime, BuffType.physicalDOT, BITE_TOTAL_TIME, doBiteDmg, BITE_TICK_TIME); b.addAvatarTexture(biteTexture); biteTarget.addBuff(b); dState = dogState.p2; } } } //melee else if (!isMoving() && enemyCooldowns[0].use(gameTime)) { if (checkRangeAndMove(aggro.getMid(), MELEE_RANGE, gameTime)) {//get close } else InGame.getInstance().addProjectile(new Projectile(this, getMid(), aggro, doMelee, meleeProjectileTexture, meleeProjectileRect)); } }