Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package;
- import flixel.FlxG;
- import flixel.tile.FlxTilemap;
- import flixel.util.FlxPath;
- import flixel.FlxSprite;
- import flixel.util.FlxPoint;
- import flixel.group.FlxTypedGroup;
- import flixel.effects.particles.FlxParticle;
- import flixel.effects.particles.FlxEmitter;
- import flixel.util.FlxMath;
- import flixel.util.FlxVelocity;
- import flixel.util.FlxSpriteUtil;
- import flixel.util.FlxAngle;
- import flixel.util.FlxTimer;
- import flixel.util.FlxRandom;
- class ZombieChibi extends FlxSprite
- {
- private var _player:Player;
- private var _map:FlxTilemap;
- public var index:Int;
- public var moneyGain:Bool = true;
- public var SlimeClass:Int = 0;
- public var randCatch:Int = 0;
- public var bonked:Bool;
- public var collidesMap:Bool;
- public var SEEKER:Bool;
- public var WANDERER:Bool;
- public var lastKnownX:Float;
- public var lastKnownY:Float;
- public var WanderWait:Float = 12;
- public var cooldownTimer:FlxTimer;
- public var hitSomething:Bool;
- public var _moveDir:Float;
- private var _idleTmr:Float;
- public var MaxSpeed:Float = 80;
- public var _pA:FlxPoint;
- public var _pB:FlxPoint;
- public var _pC:FlxPoint;
- public var _pD:FlxPoint;
- public var _pE:FlxPoint;
- public var _pF:FlxPoint;
- public var LoadedMap:Int;
- public var TILEWIDTH:Float = 16;
- public var TILEHEIGHT:Float = 16;
- public var tileCoordX:Float;
- public var tileCoordY:Float;
- public var path:FlxPath;
- private var wandering:Bool;
- private var wanderTicks:Int;
- private var nodes:Array<FlxPoint>;
- public var waitingTicks:Float;
- //CONSTRUCTOR
- public function new(x:Float, y:Float, ThePlayer:Player, TheMap:FlxTilemap):Void
- {
- super(x, y);
- //Set position
- loadGraphic(AssetPaths.Zombie__png , false, 22, 22);
- _player = ThePlayer;
- _map = TheMap;
- _idleTmr = 0;
- waitingTicks = 2;
- randCatch = Random.int(0, 5);
- //Type Logic
- var TypeRoll:Int = 0;
- TypeRoll = Random.int(0, 95);
- if (TypeRoll < 15)
- {
- SlimeClass = -1;
- loadGraphic(AssetPaths.Zombie__png , false, 22, 22);
- }
- if (TypeRoll >= 15 && TypeRoll < 25) SlimeClass = 0;
- if (TypeRoll >= 25 && TypeRoll < 55) SlimeClass = 1;
- if (TypeRoll >= 56 && TypeRoll < 65) SlimeClass = 2;
- if (TypeRoll >= 66 && TypeRoll < 75) SlimeClass = 3;
- if (TypeRoll >= 76 && TypeRoll < 85) SlimeClass = 4;
- if (TypeRoll >= 86 && TypeRoll < 95) SlimeClass = 5;
- //Green
- if (SlimeClass == 0)
- {
- loadGraphic("assets/images/SlimeGreen.png", false, 10, 9, false);
- }
- //Blue
- if (SlimeClass == 1)
- {
- loadGraphic("assets/images/SlimeBlue.png", false, 10, 9,false);
- }
- //Red
- if (SlimeClass == 2)
- {
- loadGraphic("assets/images/SlimeRed.png", false, 10, 9,false);
- }
- //Purple
- if (SlimeClass == 3)
- {
- loadGraphic("assets/images/SlimePurple.png", false, 10, 9,false);
- }
- //Dark
- if (SlimeClass == 4)
- {
- loadGraphic("assets/images/SlimeDark.png", false, 10, 9,false);
- }
- //Imp
- if (SlimeClass == 5)
- {
- loadGraphic("assets/images/Impling.png", false, 16, 16,false);
- }
- //End Type Logic
- solid = true;
- health = 2;
- collidesMap = false;
- lastKnownX = _player.x;
- lastKnownY = _player.y;
- _pA = new FlxPoint(lastKnownX, lastKnownY);
- FlxVelocity.moveTowardsPoint(this, _pA, MaxSpeed);
- //Loade nodes based on loaded stage
- if (LoadedMap == 1)
- {
- _pB = new FlxPoint(122, 108);
- _pC = new FlxPoint(86, 376);
- _pD = new FlxPoint(522, 322);
- _pE = new FlxPoint(530, 90);
- _pF = new FlxPoint(308, 222);
- }
- elasticity = 1;
- }
- override public function update():Void
- {
- //Lamp
- FlxSpriteUtil.screenWrap(this, true, true, true, true);
- if (randCatch == 5 && !bonked)
- {
- SEEKER = true;
- FlxVelocity.moveTowardsObject(this, _player, Random.float(8, 38));
- } else
- {
- SEEKER = true;
- }
- super.update();
- }
- public function CollidesNow():Void
- {
- collidesMap = true;
- }
- }
Add Comment
Please, Sign In to add comment