Exemple #1
0
        //collide and animation
        internal Projectile(Moveable owner, Vector2f start, Moveable d, Func<Moveable, bool> doA, Animation animation, float scale, bool collide)
            : this(owner, start, d, doA, null, new IntRect(0, 0, animation.FrameWidth, animation.FrameHeight), scale)
        {
            this.collide = collide;

            animationPlayer = new AnimationPlayer();
            animationPlayer.PlayAnimation(animation);
        }
Exemple #2
0
 internal bool doFireAoe(Moveable mob)
 {
     bool dead = mob.takeDamage(this, GROUNDFIRE_DMG);
     if (dead) {
         dropThreat(mob);
     }
     return false;
 }
Exemple #3
0
        //only returns if you are top 3 right now
        internal int getThreatRank(Moveable player)
        {
            if (getFirstThreat() == player) return 1;
            if (getSecondThreat() == player) return 2;
            if (getThirdThreat() == player) return 3;

            return -1;
        }
Exemple #4
0
 internal bool doMelee(Moveable mob)
 {
     bool dead = mob.takeDamage(this, MELEE_DMG);
     if (dead) {
         dropThreat(mob);
     }
     return false;
 }
Exemple #5
0
 internal bool doAssStun(Moveable m)
 {
     if (m is Enemy) {
         ((Enemy)m).takeDamage(this, STUN_AMT + (float)buffs.getValue(BuffType.meleeDmg), 1);
         ((Enemy)m).pushbackCooldownPercent(GameBox.getInstance().getGameTime(), STUN_PUSHBACK);
     } else {//lol what?
         //idc.
     }
     return true;
 }
Exemple #6
0
 //update damage
 internal void addToDamageMeter(Moveable giver, float amount)
 {
     amount = (float)Math.Round(amount,3);
     if (damageMeter.ContainsKey(giver.getName())) {
         amount = amount + (float)damageMeter[giver.getName()];
     }
     damageMeter.Remove(giver.getName());
     damageMeter.Add(giver.getName(), amount);
     change = true;
 }
Exemple #7
0
 internal override bool takeDamage(Moveable giver, float amt, int threatMultiplier)
 {
     if (aggro == null) {
         aggro = giver;
     }
     if (isDead()) return false;
     bool b = base.takeDamage(giver, amt, threatMultiplier);
     if (b) parent.changeAddAmt(-1);
     return b;
 }
Exemple #8
0
 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;
 }
Exemple #9
0
        internal Projectile(Moveable owner, Vector2f start, Moveable d, Func<Moveable, bool> doA, Texture texture, IntRect rect, float scale)
        {
            currentLoc = start;
            dest = d;
            doAbility = doA;
            currentTexture = texture;
            currentTextureRect = rect;
            collide = false;
            this.owner = owner;
            this.scale = scale;

            xNeeded = d.getMid().X - start.X;
            yNeeded = d.getMid().Y - start.Y;

            mid = new Vector2f(rect.Width / 2, rect.Height / 2);
            scale = 1.0f;

            currentSprite = new Sprite(currentTexture);
            currentSprite.Scale = new Vector2f(scale, scale);
            currentSprite.Position = start;
            currentSprite.Origin = mid;
        }
Exemple #10
0
 protected static double getDistance(Moveable ursidor, Moveable fish)
 {
     return InGame.getDistance(ursidor.getMid(), fish.getMid());
 }
Exemple #11
0
 //returns if it killed them or not
 internal virtual bool takeDamage(Moveable giver, float amount)
 {
     if (currentHp - amount <= 0)
         amount = currentHp;
     InGame.getInstance().addToDamageMeter(giver, amount);
     currentHp -= amount;
     if (currentHp <= 0) {
         currentHp = 0;
         dead = true;
     }
     return currentHp == 0;
 }
Exemple #12
0
        //startTime in TotalMiliseconds, spot is middle?
        internal void sendPlayerTo(Vector2f spot, double startTime)
        {
            if (currentHp <= 0) return;
            //instantly right now
            destX = (int)(spot.X); //- circleSize / 2);
            destY = (int)(spot.Y); // - circleSize / 2);
            prevPlayerX = playerX;
            prevPlayerY = playerY;
            if (target != null) {
                double d = InGame.getDistanceBetweenCircles(getDestMid(), getInnerRadius(), target.getMid(), target.getInnerRadius());
                if (!checkDestCircleRange(target, getRange())) {
                    target = null;
                }
            }

            startMoveTime = startTime;
        }
 internal bool doVolley(Moveable mob)
 {
     float volleyDMG = VOLLEY_DMG * (enraged || dogEnrage ? VOLLEY_ENRAGE_MULTI : 1);
     bool dead = mob.takeDamage(this, volleyDMG);
     if (dead) {
         dropThreat(mob);
     }
     return false;
 }
Exemple #14
0
 internal bool doVolley(Moveable mob)
 {
     bool dead = mob.takeDamage(this, VOLLEY_DMG * (enraged ? VOLLEY_ENRAGE_MULTI : 1));
     if (dead) {
         dropThreat(mob);
     }
     return false;
 }
Exemple #15
0
 internal override void setTarget(Moveable m, double gameTime)
 {
     target = m;
 }
Exemple #16
0
 internal BasicAdd(Vector2f v, Moveable spawnOn, int hp, int meleeDmg,BossI parent)
     : this(v,spawnOn,parent)
 {
     currentHp = maxHp = hp;
     this.meleeDmg = meleeDmg;
 }
Exemple #17
0
 internal bool doTankAoe(Moveable m)
 {
     if (m is Enemy)
         ((Enemy)m).takeDamage(this, TANKAOE_AMT, THREAT_MULTIPLIER);
     else//lol what?
         m.takeDamage(this, TANKAOE_AMT);
     return true;
 }
Exemple #18
0
 internal bool doTankHit(Moveable m)
 {
     if (m is Enemy)
         ((Enemy)m).takeDamage(this, TANKHIT_AMT + (float)buffs.getValue(BuffType.meleeDmg), THREAT_MULTIPLIER);
     else
         m.takeDamage(this, TANKHIT_AMT + (float)buffs.getValue(BuffType.meleeDmg));
     return true;
 }
Exemple #19
0
 internal Path(Moveable m)
 {
     mob = m;
     path = new List<pathPoint>();
 }
Exemple #20
0
 internal bool doChargeDMG(Moveable attackee)
 {
     bool dead = attackee.takeDamage(this, MELEE_DMG);
     if (dead) {
         dropThreat(attackee);
     }
     //than do the knockback effect
     //Movement.knockback(attackee,new Vector2f());
     return false;
 }
 internal void doBite(Moveable m)
 {
     if (isDead()) return;
     dState = dogState.biting;
     biteTarget = m;
     InGame.getInstance().addScreenNote("BITE ON "+m.getName());
 }
Exemple #22
0
        //to face Moveable m
        protected Direction getDirectionOfUnit(Moveable m)
        {
            if (target == null) return Direction.south;//default dir

            float xD = (m.playerX - playerX);
            float yD = m.playerY - playerY;

            if (Math.Abs(xD) > Math.Abs(yD)) {//side to side oriented
                if (xD > 0)//east
                    return Direction.east;
                else
                    return Direction.west;
            } else {//up down
                if (yD > 0)//south
                    return Direction.south;
                else
                    return Direction.north;
            }

            //return Direction.south;
        }
Exemple #23
0
 internal bool doMeleeHit(Moveable m)
 {
     if (m is Enemy)
         ((Enemy)m).takeDamage(this, MELEE_AMT + (float)buffs.getValue(BuffType.meleeDmg), 1);
     else
         m.takeDamage(this, MELEE_AMT);
     stack.stack(1);
     return true;
 }
 internal void setLeasher(Moveable m)
 {
     boss = m;
 }
Exemple #25
0
        internal bool doBigHit(Moveable m)
        {
            if (m is Enemy) {
                ((Enemy)m).takeDamage(this, BIGHIT_AMT + (float)buffs.getValue(BuffType.meleeDmg)*5, 1);

            } else {//lol what?
                //idc.
            }
            return true;
        }
Exemple #26
0
 internal bool checkCircleRangeAndMove(Moveable mob, int range, double gameTime)
 {
     bool aBool;
     if (aBool = (!InGame.areCircleswithRange(getMid(),getInnerRadius(), mob.getMid(),mob.getInnerRadius(), range))) {
         sendPlayerInCircleRangeOf( mob.getMid(), mob.getInnerRadius(), range, gameTime);
     }
     return aBool;
 }
Exemple #27
0
 internal override bool takeDamage(Moveable giver, float amt)
 {
     return takeDamage(giver, amt, 1);
 }
Exemple #28
0
 internal bool checkDestCircleRange(Moveable mob, int range)
 {
     return InGame.areCircleswithRange(getDestMid(), getInnerRadius(), mob.getMid(), mob.getInnerRadius(), range);
 }
Exemple #29
0
 internal bool doSpawnAdds(Moveable mob)
 {
     InGame.getInstance().addMoveable(new BasicAdd(new Vector2f(mob.getMid().X - 10,mob.getMid().Y),mob,this));
     InGame.getInstance().addMoveable(new BasicAdd(new Vector2f(mob.getMid().X + 10,mob.getMid().Y),mob,this));
     changeAddAmt(2);
     return false;
 }
 internal bool doMelee(Moveable mob)
 {
     bool dead = mob.takeDamage(this, MELEE_DMG * (dogEnrage ? ENRAGE_DOG : 1));
     if (dead) {
         dropThreat(mob);
     }
     return false;
 }