public virtual void Reset(int from, int to, int image, Glowing glowing, ICallback listener) { Revive(); View(image, glowing); _callback = listener; Point(DungeonTilemap.TileToWorld(from)); var dest = DungeonTilemap.TileToWorld(to); var d = PointF.Diff(dest, Point()); Speed.Set(d).Normalize().Scale(SPEED); if (image == 31 || image == 108 || image == 109 || image == 110) { AngularSpeed = 0; Angle = 135 - (float)(Math.Atan2(d.X, d.Y) / 3.1415926 * 180); } else { AngularSpeed = image == 15 || image == 106 ? 1440 : 720; } var tweener = new PosTweener(this, dest, d.Length / SPEED); tweener.Listener = this; Parent.Add(tweener); }
public CheckedCell(int pos) : base(TextureCache.CreateSolid(Android.Graphics.Color.Argb(0xFF, 0x55, 0xAA, 0xFF))) { Origin.Set(0.5f); Point(DungeonTilemap.TileToWorld(pos).Offset(DungeonTilemap.Size / 2, DungeonTilemap.Size / 2)); _alpha = 0.8f; }
public Wind(int pos) { _pos = pos; var p = DungeonTilemap.TileToWorld(pos); _x = p.X; _y = p.Y; _delay = pdsharp.utils.Random.Float(5); }
public static Emitter Get(int cell) { var p = DungeonTilemap.TileToWorld(cell); var emitter = GameScene.Emitter(); emitter.Pos(p.X, p.Y, DungeonTilemap.Size, DungeonTilemap.Size); return(emitter); }
public static Emitter Center(int cell) { var p = DungeonTilemap.TileToWorld(cell); var emitter = GameScene.Emitter(); emitter.Pos(p.X + DungeonTilemap.Size / 2, p.Y + DungeonTilemap.Size / 2); return(emitter); }
public Flow(int pos) { _pos = pos; var p = DungeonTilemap.TileToWorld(pos); _y = p.Y + DungeonTilemap.Size - 1; _x = p.X; _delay = pdsharp.utils.Random.Float(Delay); }
public virtual void Reset(Plant plant) { Revive(); Reset(plant.Image); Alpha(1f); _pos = plant.Pos; var p = DungeonTilemap.TileToWorld(plant.Pos); X = p.X; Y = p.Y; _state = State.Growing; _time = Delay; }
public override void Update() { if (!(Visible = Dungeon.Visible[_pos])) { return; } base.Update(); if (!((_delay -= Game.Elapsed) <= 0)) { return; } _delay = pdsharp.utils.Random.Float(); var p = DungeonTilemap.TileToWorld(_pos); Recycle <Sparkle>().Reset(p.X + pdsharp.utils.Random.Float(DungeonTilemap.Size), p.Y + pdsharp.utils.Random.Float(DungeonTilemap.Size)); }
private void UseTargeting() { _targeting = _lastTarget != null && _lastTarget.IsAlive && Dungeon.Visible[_lastTarget.pos]; if (!_targeting) { return; } if (Actor.All.Contains(_lastTarget)) { _lastTarget.Sprite.Parent.Add(_crossM); _crossM.Point(DungeonTilemap.TileToWorld(_lastTarget.pos)); _crossB.Visible = true; } else { _lastTarget = null; } }