Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package game_objects
- {
- import flash.display.BitmapData;
- import game_ui.gameworld;
- import net.flashpunk.Entity;
- import net.flashpunk.graphics.Image;
- import net.flashpunk.graphics.Spritemap;
- import net.flashpunk.tweens.misc.VarTween;
- import net.flashpunk.utils.Ease;
- import com.oaxoa.fx.Lightning;
- import com.oaxoa.fx.LightningFadeType;
- import net.flashpunk.FP;
- import flash.filters.GlowFilter;
- import flash.display.Shape;
- import flash.display.BlendMode;
- import net.flashpunk.graphics.Emitter;
- /**
- * ...
- * @author Matt McFarland
- */
- public class boltWeapon extends Entity
- {
- public var enabled:Boolean = false;
- public var maxChains:int;
- public var chainIndex:int;
- public var bolts:Array = [];
- public function boltWeapon()
- {
- maxChains = 3;
- x = gameworld.Player.x;
- y = gameworld.Player.y;
- setHitbox(46, 480,21,480);
- }
- override public function update():void
- {
- for each (var b:bolt in bolts)
- {
- if (!enabled) b.ll.alpha = 0;
- if (enabled) b.ll.alpha = 1;
- }
- if (!enabled) return;
- x = gameworld.Player.x;
- y = gameworld.Player.y;
- bolts[0] = new bolt(gameworld.Player.x, gameworld.Player.y, gameworld.Player.x, gameworld.Player.y, "focused");
- checkCollisions();
- }
- protected function checkCollisions():void
- {
- var firstLink:bolt = bolts[0] as bolt;
- var b:baddie = world.nearestToEntityinRect("baddie", gameworld.Player, [x - 90, 0, x + 90, 480]) as baddie;
- trace("First baddie: " + b);
- if (b)
- {
- b.collidable = false;
- b.takeDamage(0, .1);
- firstLink.eX = b.x;
- firstLink.eY = b.y;
- firstLink.style = "focused";
- FP.world.add(firstLink);
- var nb:baddie = world.nearestCollidableToEntity("baddie", b) as baddie;
- trace("Second baddie: " + nb);
- if (nb)
- {
- var i:int = 1;
- while (i < maxChains)
- {
- bolts[i] = new bolt(b.x, b.y, nb.x, nb.y, "link");
- FP.world.add(bolts[i]);
- nb.takeDamage(0, .1);
- nb.collidable = false;
- b = nb;
- nb = world.nearestCollidableToEntity("baddie", b) as baddie;
- trace("Next baddie: " + nb);
- if (!nb)
- break;
- i++;
- }
- }
- return;
- }
- //No Targets
- //Remove links
- var links:Array = [];
- FP.world.getClass(bolt, links);
- for each (var l:bolt in links)
- {
- if (l.style == "link") {
- FP.world.remove(l);
- bolts.pop();
- }
- trace ("Bolt array: ["+bolts+"]");
- }
- //Untag baddies .
- var baddies:Array = []
- FP.world.getClass(baddie, baddies);
- for each (var bb:baddie in baddies)
- {
- bb.collidable = true;
- }
- //Reset the bolt weapon.
- firstLink.style = "free";
- firstLink.eX = gameworld.Player.x;
- firstLink.eY = 0;
- }
- public function remove():void
- {
- if (this.world != null) this.world.remove(this);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement