Exemple #1
0
    protected override void Awake()
    {
        base.Awake();

        mInstance = this;

        mFSM = GetComponent<PlayMakerFSM>();

        //FsmVariables.GlobalVariables.GetFsmString("f**k").Value
        mOrderYOfs = -map.data.tileOrigin.y;
        mOrderYMax = map.height * map.data.tileSize.y;
    }
        public override void DrawIcon(SceneGame scene, Vector2 position)
        {
            var curse = SpriteLoader.Instance.AddSprite("content/item_curse");

            scene.DrawSprite(curse, 0, position - curse.Middle, SpriteEffects.None, 1.0f);
        }
Exemple #3
0
 public override void Update(SceneGame gs)
Exemple #4
0
 public override void Render(SceneGame gs, Graphics g, int fps)
 {
     this.spriteSheet.setLocation((int)(this.posX), (int)(this.posY));
     this.spriteSheet, DrawRotated(g, fps, heading);
 }
Exemple #5
0
 public override bool CanDestroy(SceneGame world)
 {
     return(false);
 }
Exemple #6
0
        public override bool IsValid(SceneGame world)
        {
            var alive = world.PlayerCurio.GetBehavior <BehaviorAlive>();

            return(alive != null && alive.HP < 10);
        }
Exemple #7
0
        public override void Draw(SceneGame scene, DrawPass pass)
        {
            var snakeSpit = SpriteLoader.Instance.AddSprite("content/snake_poison");

            scene.DrawSprite(snakeSpit, 0, Position - snakeSpit.Middle, SpriteEffects.None, 0);
        }
Exemple #8
0
        public override void Draw(SceneGame scene, DrawPass pass)
        {
            var spriteBoomerang = SpriteLoader.Instance.AddSprite("content/boomerang");

            scene.DrawSpriteExt(spriteBoomerang, 0, Position - spriteBoomerang.Middle, spriteBoomerang.Middle, Angle, SpriteEffects.None, 0);
        }
        public void Tick(SceneGame scene)
        {
            var active     = Curio.GetActionHolder(ActionSlot.Active);
            var lastSeen   = Curio.GetBehavior <BehaviorLastSeen>();
            var pathfinder = Curio.GetBehavior <BehaviorPathfinder>();
            var orientable = Curio.GetBehavior <BehaviorOrientable>();
            var tile       = Curio.GetMainTile();

            if (Curio.IsAlive())
            {
                SwordAngle.Update(scene.TimeModCurrent);
                SwordScale.Update(scene.TimeModCurrent);
            }

            if (active.Done && Curio.IsAlive())
            {
                var delta    = scene.PlayerCurio.GetVisualTarget() - Curio.GetVisualTarget();
                var distance = delta.Length();
                if (distance < 48f)
                {
                    var angleCurrent = orientable.Angle;
                    var angleTarget  = Enumerable.Range(0, 8).Select(x => MathHelper.PiOver4 * x).GetClosestAngle(Util.VectorToAngle(delta));
                    var angleDelta   = MathHelper.WrapAngle(angleTarget - angleCurrent);
                    var attack       = new List <ActionWrapper>()
                    {
                        new ActionLichSlash(Curio, angleTarget - MathHelper.PiOver4 * 3, angleTarget + MathHelper.PiOver4 * 3, 10, 60, 10).InSlot(ActionSlot.Active),
                        new ActionTurn(Curio, angleDelta, 3).InSlot(ActionSlot.Active),
                    };
                    attack.Apply(Curio);
                }
                else if (lastSeen.LastSeenTile != null)
                {
                    var nextMove = pathfinder.GetNextMove(new Point(tile.X, tile.Y));
                    if (lastSeen.LastSeenTile != pathfinder.GetDestination() || !nextMove.HasValue)
                    {
                        pathfinder.FindPath(lastSeen.LastSeenTile);
                    }
                    if (nextMove.HasValue)
                    {
                        var angleCurrent = orientable.Angle;
                        var angleTarget  = Util.PointToAngle(nextMove.Value);
                        var angleDelta   = MathHelper.WrapAngle(angleTarget - angleCurrent);

                        var movement = new List <ActionWrapper>();
                        if (Math.Abs(angleDelta) < 0.0001)
                        {
                            movement.Add(new ActionMoveForward(Curio, nextMove.Value.ToVector2(), 10).InSlot(ActionSlot.Active));
                        }
                        else if (angleDelta < 0)
                        {
                            movement.Add(new ActionTurn(Curio, -MathHelper.PiOver4, 5).InSlot(ActionSlot.Active));
                        }
                        else if (angleDelta > 0)
                        {
                            movement.Add(new ActionTurn(Curio, MathHelper.PiOver4, 5).InSlot(ActionSlot.Active));
                        }
                        movement.Apply(Curio);
                    }
                }
            }
        }
Exemple #10
0
        public override void Draw(SceneGame scene, DrawPass pass)
        {
            var knife = SpriteLoader.Instance.AddSprite("content/knife");

            scene.DrawSpriteExt(knife, 0, Position - knife.Middle, knife.Middle, (float)Math.Atan2(Velocity.Y, Velocity.X), SpriteEffects.None, 0);
        }
Exemple #11
0
        public override void Draw(SceneGame scene, DrawPass pass)
        {
            var spriteShockwave = SpriteLoader.Instance.AddSprite("content/shockwave");

            scene.DrawSpriteExt(spriteShockwave, (int)Frame, Position - new Vector2(spriteShockwave.Middle.X, spriteShockwave.Height) + new Vector2(0, Box.Height / 2), new Vector2(spriteShockwave.Middle.X, spriteShockwave.Height), 0, new Vector2(1, (ScalingFactor > 1) ? 1 + ScalingFactor / 5 : 1), SpriteEffects.None, Color.White, 0);
        }
Exemple #12
0
        public override void Draw(SceneGame scene, DrawPass pass)
        {
            var fireball = SpriteLoader.Instance.AddSprite("content/fireball");

            scene.DrawSpriteExt(fireball, 0, Position - fireball.Middle, fireball.Middle, -MathHelper.PiOver2 * (int)(Frame * 0.5), SpriteEffects.None, 0);
        }
Exemple #13
0
        public override void Draw(SceneGame scene, DrawPass pass)
        {
            var breathPoison = SpriteLoader.Instance.AddSprite("content/breath_poison");

            scene.DrawSpriteExt(breathPoison, scene.AnimationFrame(breathPoison, Frame, FrameEnd), Position - breathPoison.Middle, breathPoison.Middle, (float)Math.Atan2(Velocity.X, Velocity.Y) + MathHelper.Pi, SpriteEffects.None, 0);
        }
Exemple #14
0
        public override void Draw(SceneGame scene, DrawPass pass)
        {
            var spriteExplosion = SpriteLoader.Instance.AddSprite("content/explosion");

            scene.DrawSprite(spriteExplosion, scene.AnimationFrame(spriteExplosion, Frame, FrameEnd), Position - spriteExplosion.Middle, SpriteEffects.None, 0);
        }
 public override void DrawIcon(SceneGame scene, Vector2 position)
 {
     DrawWeaponAsIcon(scene, SpriteLoader.Instance.AddSprite("content/wand_azure"), 0, position);
 }
Exemple #16
0
        public override void Apply(SceneGame world, Vector2 cardPos)
        {
            var alive = world.PlayerCurio.GetBehavior <BehaviorAlive>();

            alive.HP++;
        }
Exemple #17
0
 public override void DrawIcon(ICurio curio, SceneGame scene, Vector2 pos)
 {
     throw new NotImplementedException();
 }
Exemple #18
0
 public override void Destroy(SceneGame world, Vector2 cardPos)
 {
     throw new NotImplementedException();
 }
Exemple #19
0
    protected override void OnDestroy()
    {
        base.OnDestroy();

        mInstance = null;
    }
Exemple #20
0
        public override void Draw(SceneGame scene, DrawPass pass)
        {
            var magicOrange = SpriteLoader.Instance.AddSprite("content/magic_orange");

            scene.DrawSprite(magicOrange, (int)Frame, Position - magicOrange.Middle, SpriteEffects.None, 0);
        }