internal bool startCharge() { //choose random raid unit do{ chargeTarget = InGame.getInstance().getRandomAlivePlayer(); }while(chargeTarget == aggro); hungered = null; charging = true; //gain charge buff model.setRing(Color.Green); InGame.getInstance().addScreenNote("CHARGE AT "+chargeTarget.getName()); InGame.getInstance().setWarningFG(chargedwarningTexture); runspeed = DEFAULT_RUNSPEED / 4; Console.WriteLine("startCharge"); return true; }
internal override void Update(double gameTime) { base.Update(gameTime); //if(isAnimating()) return; //melee if (chargeTarget != null && !chargeTarget.isDead() ){ if (!isMoving() && !checkRangeAndMove(chargeTarget.getMid(), MELEE_RANGE, gameTime) && enemyCooldowns[(int)cooldowns.melee].use(gameTime)) { InGame.getInstance().addProjectile(new Projectile(this, getMid(), chargeTarget, doMelee, null, new IntRect())); model.setAnimation(attackAnimation); if (charging) stopCharge(); overrideDirection = getDirectionOfUnit(chargeTarget); } }else if (aggro != null && !isMoving() && enemyCooldowns[(int)cooldowns.melee].use(gameTime) && !checkRangeAndMove(aggro.getMid(), MELEE_RANGE, gameTime)) { InGame.getInstance().addProjectile(new Projectile(this, getMid(), aggro, doMelee, null, new IntRect())); model.setAnimation(attackAnimation); } //hungry if (hungered == null && enemyCooldowns[(int)cooldowns.hungry].ready(gameTime)) { hungered = new Buff(BuffType.physicalHaste, HUNGERED_RAGE_HASTE_PERCENT); buffs.addBuff(hungered); InGame.getInstance().setWarningFG(hungeredwarningTexture); model.setRing(Color.Red); InGame.getInstance().addScreenNote("HUNGERED RAGEE"); Console.WriteLine("hungered rage"); } //fish if (hungered != null && !model.isAnimating() && InGame.getDistance(this.getMid(), fish.getMid()) < FISHING_DIST) { Console.WriteLine("fish"); doFishEating(gameTime); } //charge (check if tank is back in range, to pick up aggro? if (!charging && chargeTarget != null) { if (InGame.getDistance(this.getMid(), aggro.getMid()) < MELEE_RANGE) { chargeTarget = null; Console.WriteLine("taking off charge target"); overrideDirection = null; } } //update cds? enemyCooldowns[(int)cooldowns.melee].setCDReduc(buffs.getValue(BuffType.physicalHaste)); }
internal static PlayerClassNum getClassNum(PlayerClassI p) { if (p is Mage) return PlayerClassNum.mage; if (p is Puri) return PlayerClassNum.puri; if (p is Bard) return PlayerClassNum.bard; if (p is Assassin) return PlayerClassNum.assa; if (p is Vanguard) return PlayerClassNum.vang; if (p is Archer) return PlayerClassNum.archer; if (p is GoodFraiser) return PlayerClassNum.goodfraiser; return PlayerClassNum.none; }