Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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;
        }