Inheritance: MonoBehaviour
	public void ChangeSprite(Sprites TheSprite)
    {
        
        CurrentSprite = TheSprite;
        switch (CurrentSprite)
        {
            case Sprites.Locked:
                TheCrosshair.sprite = LockedSprite;
                break;
            case Sprites.Push:
                TheCrosshair.sprite = PushSprite;
                break;
            case Sprites.Neutral:
                TheCrosshair.sprite = NeutralSprite;
                break;
            case Sprites.Grab:
                TheCrosshair.sprite = GrabSprite;
                break;
            case Sprites.Safe:
                TheCrosshair.sprite = SafeSprite;
                break;
            case Sprites.Padlock:
                TheCrosshair.sprite = PadlockSprite;
                break;
            case Sprites.View:
                TheCrosshair.sprite = ViewSprite;
                break;
            case Sprites.Gear:
                TheCrosshair.sprite = GearSprite;
                break;
            default:
                break;
        }
    }
 public static Sprite GetSprite(Sprites sprite)
 {
     if (All.ContainsKey(sprite)) {
         return All[sprite];
     } else {
         return null;
     }
 }
Beispiel #3
0
 public static Texture2D GetTexture(Sprites sprite)
 {
     Texture2D texture;
     if (!_textureCache.TryGetValue(sprite, out texture)) {
         Logger.Error(TAG, String.Format("Unable to fetch sprite \"{0}\"", sprite));
     }
     return texture;
 }
Beispiel #4
0
    // Use this for initialization
    void Start()
    {
        spriteScript = GameObject.Find("SpritesHolder").GetComponent<Sprites>();

        GameObject childSprite = this.transform.GetChild(0).gameObject;
        SpriteRenderer tile = childSprite.GetComponent<SpriteRenderer>();
        tile.sprite = spriteScript.GetTileSprite();

        int rndRot = Random.Range(0, 4);

        if(rndRot == 0)
            childSprite.transform.rotation = Quaternion.Euler(0, 0, 0);
        if(rndRot == 1)
            childSprite.transform.rotation = Quaternion.Euler(0, 0, 90);
        if(rndRot == 2)
            childSprite.transform.rotation = Quaternion.Euler(0, 0, 180);
        if(rndRot == 3)
            childSprite.transform.rotation = Quaternion.Euler(0, 0, 270);
    }
Beispiel #5
0
        public void DrawLight(RenderTexture renderTexture, double x, double y, double radius)
        {
            Sprite sprite;

            if (radius < 401)
            {
                sprite       = Sprites.Light(LightSprite.Light200x200);
                sprite.Scale = new Vector2f((float)(radius / 200f), (float)(radius / 200f));
            }
            else if (radius < 601)
            {
                sprite       = Sprites.Light(LightSprite.Light300x300);
                sprite.Scale = new Vector2f((float)(radius / 300f), (float)(radius / 300f));
            }
            else
            {
                sprite       = Sprites.Light(LightSprite.Light400x400);
                sprite.Scale = new Vector2f((float)(radius / 400f), (float)(radius / 400f));
            }
            DrawGameUnitSprite(sprite, x, y, null, renderTexture, sprite.Scale, new RenderStates(BlendMode.Add));
        }
Beispiel #6
0
            public Sequence(CacheBase Cache, int Address)
            {
                EndianReader Reader = Cache.Reader;

                Reader.SeekTo(Address);

                Name             = Reader.ReadNullTerminatedString(32);
                FirstSubmapIndex = Reader.ReadInt16();
                BitmapCount      = Reader.ReadInt16();

                #region Sprite Chunk
                Reader.SeekTo(Address + 52);
                int iCount  = Reader.ReadInt32();
                int iOffset = Reader.ReadInt32() - Cache.Magic;
                for (int i = 0; i < iCount; i++)
                {
                    Sprites.Add(new Sprite(Cache, iOffset + 32 * i));
                }
                Reader.SeekTo(Address + 64);
                #endregion
            }
Beispiel #7
0
        public async Task Sprite([Remainder] string name = "")
        {
            var embed = new EmbedBuilder();

            embed.WithColor(Colors.Get("Iodem"));

            if (Sprites.GetSpriteCount() == 0)
            {
                embed.WithDescription(Utilities.GetAlert("no_sprites"));
            }
            else if (name == "")
            {
                embed.WithImageUrl(Sprites.GetRandomSprite());
            }
            else
            {
                embed.WithImageUrl(Sprites.GetImageFromName(name));
            }

            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
Beispiel #8
0
    internal void UpdatePips()
    {
        foreach (GameObject p in pipObjects)
        {
            Destroy(p);
        }
        pipObjects.Clear();
        int pipGap   = (int)((Sprites.GetBounds(Sprites.ability_border).x - 2 - Sprites.GetBounds(Sprites.ability_pip).x *pips) / (pips + 1));
        int currentX = 2 + pipGap;

        for (int i = 0; i < pips; i++)
        {
            GameObject pip = Primitives.CreateActor(Sprites.ability_pip, currentX, 2);
            pipObjects.Add(pip);
            Util.SetLayer(pip, Util.LayerName.UI, 0);
            currentX += (int)(Sprites.GetBounds(Sprites.ability_pip).x);
            currentX += pipGap;
            pip.transform.SetParent(transform, false);
            pip.name = "pip";
        }
    }
Beispiel #9
0
        public void AddDefaultPlaylists()
        {
            Logger.Log("Creating default playlists...");

            List <BeatmapLevelSO> levels = _levelCollection.GetPrivateField <BeatmapLevelSO[]>("_beatmapLevels").ToList();

            Playlist _allPlaylist = new Playlist()
            {
                playlistTitle = "All songs", playlistAuthor = "", image = Sprites.SpriteToBase64(Sprites.BeastSaberLogo), icon = Sprites.BeastSaberLogo, fileLoc = ""
            };

            _allPlaylist.songs = new List <PlaylistSong>();
            _allPlaylist.songs.AddRange(levels.Select(x => new PlaylistSong()
            {
                songName = $"{x.songName} {x.songSubName}", level = x, oneSaber = x.beatmapCharacteristics.Any(y => y.characteristicName == "One Saber"), path = "", key = "", levelId = x.levelID, hash = CustomHelpers.CheckHex(x.levelID.Substring(0, Math.Min(32, x.levelID.Length)))
            }));
            Logger.Log($"Created \"{_allPlaylist.playlistTitle}\" playlist with {_allPlaylist.songs.Count} songs!");

            Playlist _favPlaylist = new Playlist()
            {
                playlistTitle = "Your favorite songs", playlistAuthor = "", image = Sprites.SpriteToBase64(Sprites.BeastSaberLogo), icon = Sprites.BeastSaberLogo, fileLoc = ""
            };

            _favPlaylist.songs = new List <PlaylistSong>();
            _favPlaylist.songs.AddRange(levels.Where(x => PluginConfig.favoriteSongs.Contains(x.levelID)).Select(x => new PlaylistSong()
            {
                songName = $"{x.songName} {x.songSubName}", level = x, oneSaber = x.beatmapCharacteristics.Any(y => y.characteristicName == "One Saber"), path = "", key = "", levelId = x.levelID, hash = CustomHelpers.CheckHex(x.levelID.Substring(0, Math.Min(32, x.levelID.Length)))
            }));
            Logger.Log($"Created \"{_favPlaylist.playlistTitle}\" playlist with {_favPlaylist.songs.Count} songs!");

            if (PlaylistsCollection.loadedPlaylists.Any(x => x.playlistTitle == "All songs" || x.playlistTitle == "Your favorite songs"))
            {
                PlaylistsCollection.loadedPlaylists.RemoveAll(x => x.playlistTitle == "All songs" || x.playlistTitle == "Your favorite songs");
            }

            PlaylistsCollection.loadedPlaylists.Insert(0, _favPlaylist);
            PlaylistsCollection.loadedPlaylists.Insert(0, _allPlaylist);

            _favPlaylist.SavePlaylist("Playlists\\favorites.json");
        }
Beispiel #10
0
        /// <summary>
        /// Draws the menu.
        /// </summary>
        public override void Draw(GameTime gameTime)
        {
            Vector2 transitionOffset = new Vector2(0f, (float)Math.Pow(TransitionPosition, 2) * 90f);

            // Draw each menu entry in turn.
            Quads.Begin();
            foreach (MenuEntry entry in _menuEntries)
            {
                Quads.Render(entry.Position - _menuEntrySize / 2f, entry.Position + _menuEntrySize / 2f, null, true,
                             ContentWrapper.Grey * entry.Alpha * TransitionAlpha, entry.TileColor * entry.Alpha * TransitionAlpha);
            }
            Quads.Render(_menuSlider.Position - new Vector2(_menuEntrySize.Y / 2f), _menuSlider.Position + new Vector2(_menuEntrySize.Y / 2f), null, true,
                         ContentWrapper.Grey * TransitionAlpha, _menuSlider.TileColor * TransitionAlpha);
            Quads.End();

            Sprites.Begin();
            foreach (MenuEntry entry in _menuEntries)
            {
                Sprites.DrawString(_font, entry.Text, entry.Position + Vector2.One, ContentWrapper.Black * entry.Alpha * entry.Alpha * TransitionAlpha,
                                   0f, entry.Origin, entry.Scale, SpriteEffects.None, 0f);
                Sprites.DrawString(_font, entry.Text, entry.Position, entry.TextColor * entry.Alpha * TransitionAlpha,
                                   0f, entry.Origin, entry.Scale, SpriteEffects.None, 0f);
                if (entry.Fade > 0f)
                {
                    Sprites.Draw(entry.Preview, PreviewPosition, null, Color.White * Math.Max((TransitionAlpha - 0.8f) / 0.2f, 0f) * entry.Fade, 0f, _previewOrigin, 1f, SpriteEffects.None, 0f);
                }
            }
            Sprites.End();

            Quads.Begin();
            Quads.Render(Vector2.Zero, new Vector2(Framework.GraphicsDevice.Viewport.Width, TitleBarHeight), null, ContentWrapper.Grey * 0.7f * TransitionAlpha);
            Quads.End();

            // Make the menu slide into place during transitions, using a
            // power curve to make things look more interesting (this makes
            // the movement slow down as it nears the end).
            Sprites.Begin();
            Sprites.Draw(_samplesLogo, _titlePosition - transitionOffset, null, Color.White, 0f, _titleOrigin, 1f, SpriteEffects.None, 0f);
            Sprites.End();
        }
Beispiel #11
0
        public void DrawMinionRespawn(Vector2f[] points, bool isUnion)
        {
            WayPointInfo[][] respawnWayPoints;
            if (isUnion)
            {
                if (respawnUnionPoints == null)
                {
                    respawnUnionPoints = points;
                    respawnWayPoints   = respawnUnionWayPoints = GenerateWayPoints(points, 100);
                }
                else
                {
                    respawnWayPoints = respawnUnionWayPoints;
                }
            }
            else if (respawnEnemyPoints == null)
            {
                respawnEnemyPoints = points;
                respawnWayPoints   = respawnEnemyWayPoints = GenerateWayPoints(points, 100);
            }
            else
            {
                respawnWayPoints = respawnEnemyWayPoints;
            }

            for (int i = 0; i < respawnWayPoints.Length; i++)
            {
                var point          = points[i];
                var isVisiblePoint = visibleArea[(int)(point.X / visibleArea.Length)][(int)(point.Y / visibleArea.Length)] != 0;
                if (!isVisiblePoint)
                {
                    continue;
                }
                int n      = (index / 1) % respawnWayPoints[i].Length;
                var sprite = isUnion
                    ? Sprites.Critter_Union(respawnWayPoints[i][n].Angle)
                    : Sprites.Critter_Enemy(respawnWayPoints[i][n].Angle);
                DrawGameUnitSprite(sprite, respawnWayPoints[i][n].Point.X, respawnWayPoints[i][n].Point.Y);
            }
        }
Beispiel #12
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            base.Draw(spriteBatch);

            RenderMap(spriteBatch);

            RenderHUD(spriteBatch);

            // Render Dialog
            if (DialogEnabled)
            {
                MessageDialog.Draw(spriteBatch);
            }


            spriteBatch.Begin();

            // Render Cursor
            spriteBatch.Draw(Sprites.GetSprite("/cursor.png"), new Rectangle(CursorX, CursorY, 17, 23), Color.White);

            spriteBatch.End();
        }
Beispiel #13
0
    public void Resume()
    {
        if (!isPause)
        {
            return;
        }
        isPause = false;
        UpdateGoldText();
        UpdateCashText();
        UpdateTicketText();
        UpdateHeadIcon();
#if UNITY_IOS
        if (currentBottomButton == offerwallButton)
        {
            offerwallButton.image.sprite = Sprites.GetSprite(SpriteAtlas_Name.Menu, Save.data.isPackB ? "Offerwall_On" : "Task_On");
        }
        else
        {
            offerwallButton.image.sprite = Sprites.GetSprite(SpriteAtlas_Name.Menu, Save.data.isPackB ? "Offerwall_Off" : "Task_Off");
        }
#endif
    }
    private SpriteCollection.TextureData[] _GetCurrentImageLayers()
    {
        List <SpriteCollection.TextureData> layers = new List <SpriteCollection.TextureData>();

        Common.State     state     = BaseItem.state;
        Common.Direction direction = BaseItem.direction;

        List <int> spriteIds = BaseItem.itemData.GetSprites(state);

        if (spriteIds == null || spriteIds.Count == 0)
        {
            return(null);
        }

        for (int index = 0; index < spriteIds.Count; index++)
        {
            SpriteCollection.SpriteData sprite = Sprites.GetSprite(spriteIds[index]);
            layers.Add(sprite.GetTextureData(direction));
        }

        return(layers.ToArray());
    }
Beispiel #15
0
        public Heros()
        {
            this.Position = new int[] { 1, 5 };
            Profit        = 0;
            Argent        = 100.0;

            Sprites.Add(Properties.Resources.bas1);     // 0
            Sprites.Add(Properties.Resources.bas2);     // 1
            Sprites.Add(Properties.Resources.bas3);     // 2
            Sprites.Add(Properties.Resources.droite1);  // 3
            Sprites.Add(Properties.Resources.droite2);  // 4
            Sprites.Add(Properties.Resources.gauche1);  // 5
            Sprites.Add(Properties.Resources.gauche2);  // 6
            Sprites.Add(Properties.Resources.haut1);    // 7
            Sprites.Add(Properties.Resources.haut2);    // 8
            Sprites.Add(Properties.Resources.haut3);    // 9

            RotationSpriteBas    = 0;
            RotationSpriteDroite = 3;
            RotationSpriteGauche = 5;
            RotationSpriteHaut   = 7;
        }
Beispiel #16
0
        protected override void OnSpriteCreated()
        {
            Context.Reset();

            var lotterySprite = Sprites.FindFirst("LotterySprite");

            lotterySprite.Hit += PersonWin;
            var thunderSprite = Sprites.FindFirst("Thunder");

            if (thunderSprite != null)
            {
                thunderSprite.Hit += PersonLost;
            }

            Sprites.QueryBehavior <ButtonBehavior>("StartButton")
            .Click += (o, e) => TriggerStart();

            if (Context.CurrentPrize != null)
            {
                CreatePersons();
            }
        }
Beispiel #17
0
 void Awake()
 {
     m_Colors = Colors;
     m_Game = Game;
     m_Music = Music;
     m_Particles = Particles;
     m_Prefabs = Prefabs;
     m_Sprites = Sprites;
     m_Score = Score;
     m_SoundFX = SoundFX;
     m_Timer = Timer;
     if (!MainMenu)
         m_Camera = Camera;
     m_Strings = TextStrings;
     m_Input = InputHandler;
     if (MainMenu)
         m_interMain = MainMenu;
     else if(HUD)
         m_interGame = HUD;
     else if (CreateMode)
         m_interCreate = CreateMode;
 }
Beispiel #18
0
        protected virtual void OnWrappingChanged(bool oldHoriz, bool newHoriz, bool oldVerti, bool newVerti)
        {
            if (WrappingChanged != null)
            {
                GridPointMatrixWrappingChangedEventArgs e =
                    new GridPointMatrixWrappingChangedEventArgs(this, oldHoriz, newHoriz, oldVerti, newVerti);
                WrappingChanged(e);
            }

            // set indexer delegate
            if (newHoriz || newVerti)
            {
                FindIndexedGridPoint = new GetIndexer(GetIndexer_Wrap);
            }
            else
            {
                FindIndexedGridPoint = new GetIndexer(GetIndexer_NoWrap);
            }

            // create new child Sprites for all Sprite instances on this grid
            Sprites.CreateChildSprites(this);
        }
Beispiel #19
0
        public async Task Status([Remainder] SocketUser user = null)
        {
            user ??= Context.User;
            var account = EntityConverter.ConvertUser(user);
            var factory = new PlayerFighterFactory();
            var p       = factory.CreatePlayerFighter(account);

            var author = new EmbedAuthorBuilder();

            author.WithName($"{(user is SocketGuildUser sguser ? sguser.DisplayName() : user.Username)}");
            author.WithIconUrl(user.GetAvatarUrl());


            var embed = new EmbedBuilder()
                        .WithColor(Colors.Get(account.Element.ToString()))
                        .WithAuthor(author)
                        .WithTitle($"Level {account.LevelNumber} {account.GsClass} {string.Join("", account.TrophyCase.Trophies.Select(t => t.Icon))} (Rank {UserAccounts.GetRank(account) + 1})")
                        .AddField("Current Equip", account.Inv.GearToString(AdeptClassSeriesManager.GetClassSeries(account).Archtype), true)
                        .AddField("Psynergy", p.GetMoves(false), true)
                        .AddField("Djinn", account.DjinnPocket.GetDjinns().GetDisplay(DjinnDetail.None), true)

                        .AddField("Stats", p.Stats.ToString(), true)
                        .AddField("Elemental Stats", p.ElStats.ToString(), true)

                        .AddField("Unlocked Classes", account.BonusClasses.Count == 0 ? "none" : string.Join(", ", account.BonusClasses))

                        .AddField("XP", $"{account.XP} - next in {account.XPneeded}{(account.NewGames > 1 ? $"\n({account.TotalXP} total | {account.NewGames} resets)" : "")}", true)
                        .AddField("Colosso wins | Dungeon Wins", $"{account.ServerStats.ColossoWins} | {account.ServerStats.DungeonsCompleted}", true)
                        .AddField("Endless Streaks", $"Solo: {account.ServerStats.EndlessStreak.Solo} | Duo: {account.ServerStats.EndlessStreak.Duo} \nTrio: {account.ServerStats.EndlessStreak.Trio} | Quad: {account.ServerStats.EndlessStreak.Quad}", true);

            if (user is SocketGuildUser socketGuildUser)
            {
                var Footer = new EmbedFooterBuilder();
                Footer.WithText("Joined this Server on " + socketGuildUser.JoinedAt.Value.Date.ToString("dd-MM-yyyy"));
                Footer.WithIconUrl(Sprites.GetImageFromName("Iodem"));
                embed.WithFooter(Footer);
            }
            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
        public LevelObjectPrefab(XElement element, string identifier = null)
        {
            ChildObjects         = new List <ChildObject>();
            LevelTriggerElements = new List <XElement>();
            OverrideProperties   = new List <LevelObjectPrefab>();
            OverrideCommonness   = new Dictionary <string, float>();

            Identifier             = null;
            SerializableProperties = SerializableProperty.DeserializeProperties(this, element);
            if (element != null)
            {
                Config     = element;
                Identifier = element.GetAttributeString("identifier", null) ?? identifier;
                if (string.IsNullOrEmpty(Identifier))
                {
#if DEBUG
                    DebugConsole.ThrowError($"Level object prefab \"{element.Name}\" has no identifier! Using the name as the identifier instead...");
#else
                    DebugConsole.AddWarning($"Level object prefab \"{element.Name}\" has no identifier! Using the name as the identifier instead...");
#endif
                    Identifier = element.Name.ToString();
                }
                LoadElements(element, -1);
                InitProjSpecific(element);
            }

            //use the maximum width of the sprite as the minimum surface width if no value is given
            if (element != null && !element.Attributes("minsurfacewidth").Any())
            {
                if (Sprites.Any())
                {
                    MinSurfaceWidth = Sprites[0].size.X * MaxSize;
                }
                if (DeformableSprite != null)
                {
                    MinSurfaceWidth = Math.Max(MinSurfaceWidth, DeformableSprite.Size.X * MaxSize);
                }
            }
        }
Beispiel #21
0
    public void Init(bool isFree, int index)
    {
        this.index        = index;
        bgImage.sprite    = Sprites.GetBGSprite("bg_" + index);
        titleImage.sprite = Sprites.GetSprite(SpriteAtlas_Name.Slots, "title_" + index);
        if (index == 3 || index == 6)
        {
            cashNum = isFree ? 150 : 500;
        }
        else
        {
            cashNum = isFree ? 50 : 200;
        }
        reward_numText.text = cashNum.ToString();
        isAd = !isFree;
#if UNITY_ANDROID
        ad_maskGo.SetActive(isAd);
#elif UNITY_IOS
        ad_maskGo.SetActive(isAd && Save.data.isPackB);
#endif
        reward_numText.transform.parent.gameObject.SetActive(!isAd);
    }
Beispiel #22
0
        public void LoadSheet(string fileName)
        {
            Bitmap image;

            try {
                image = new Bitmap(fileName);
            } catch (Exception e) {
                MessageBox.Show(e.Message, "Error loading image");
                return;
            }

            string name = System.IO.Path.GetFileName(fileName);

            int x = image.Width / 32;
            int y = image.Height / 32;

            for (int j = 0; j < y; j++)
            {
                for (int i = 0; i < x; i++)
                {
                    string spriteName  = name;
                    var    cloneRect   = new System.Drawing.Rectangle(i * 32, j * 32, 32, 32);
                    Bitmap cloneBitmap = image.Clone(cloneRect, image.PixelFormat);
                    if (_imageValidator.IsEmpty(cloneBitmap))
                    {
                        continue;
                    }
                    var imageSource =
                        System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(cloneBitmap.GetHbitmap(),
                                                                                     IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                    Sprites.Add(new Sprite(spriteName, new Vector2(0, 0),
                                           new Microsoft.Xna.Framework.Rectangle(cloneRect.X, cloneRect.Y, cloneRect.Width,
                                                                                 cloneRect.Height))
                    {
                        ImageSource = imageSource
                    });
                }
            }
        }
Beispiel #23
0
 private bool SaveSprites(string filename)
 {
     try
     {
         using (var fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
         {
             using var w = new BinaryWriter(fs);
             w.Write(Encoding.UTF8.GetBytes("SPRDEF"));
             Sprites.WriteBytes(w);
             w.Flush();
             w.Close();
             fs.Close();
         }
         Filename = filename;
         Text     = $@"SPRDEF - {Filename}";
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Beispiel #24
0
        public async Task Claim()
        {
            var account = UserAccounts.GetAccount(Context.User);
            var inv     = account.Inv;

            if (DateTime.Now <= new DateTime(2019, 7, 1) && account.LastClaimed < new DateTime(2019, 6, 1))
            {
                var coins = account.LevelNumber * 120;
                inv.AddBalance(coins);
                var chest1 = (ChestQuality)Math.Max(0, Math.Min(4, ((int)account.LevelNumber / 11) - 1));
                var chest2 = (ChestQuality)Math.Max(0, Math.Min(4, ((int)account.LevelNumber / 11 - 2)));
                inv.AwardChest(chest1);
                inv.AwardChest(chest2);

                var embed = new EmbedBuilder();
                embed.WithColor(Colors.Get("Iodem"));
                embed.WithDescription($"Thank you for being part of this server! I hope you have fun with the new items. Here, take this: \n <:coin:569836987767324672>{coins}\n Also, take these to start off your journey: \n{Inventory.ChestIcons[chest2]} {Inventory.ChestIcons[chest1]} ");
                embed.WithThumbnailUrl(Sprites.GetImageFromName("Iodem"));
                account.LastClaimed = DateTime.Now;
                await Context.Channel.SendMessageAsync("", false, embed.Build());
            }
        }
Beispiel #25
0
        public override void Draw()
        {
            Sprites.Begin(0, null, null, null, null, null, Camera.View);

            for (int i = 0; i < 5; ++i)
            {
                Sprites.Draw(_rectangleSprite.Image, ConvertUnits.ToDisplayUnits(_rectangle[i].Position), null,
                             Color.White, _rectangle[i].Rotation, _rectangleSprite.Origin, 1f, SpriteEffects.None, 0f);
            }

            Sprites.End();
            Lines.Begin(ref Camera.SimProjection, ref Camera.SimView);

            foreach (Fixture f in _ramps.FixtureList)
            {
                Lines.DrawLineShape(f.Shape, Colors.Teal);
            }

            Lines.End();

            base.Draw();
        }
Beispiel #26
0
        public void RemoveSprite(string name)
        {
            Sprite sprite = GetSpriteByName(name);

            if (sprite == null)
            {
                throw new ArgumentException("Sprite not found.");
            }

            for (int i = 0; i < ShotTypes.Count; i++)
            {
                ShotType shot_type = ShotTypes[i];

                if (shot_type is StillShotType still)
                {
                    if (still.Sprite == sprite)
                    {
                        RemoveShotType(still.Name);
                        i--;
                    }
                }
                else if (shot_type is AnimationShotType anim)
                {
                    anim.RemoveSprite(sprite);
                    if (anim.Animation.Length == 0)
                    {
                        RemoveShotType(anim.Name);
                        i--;
                    }
                }
            }

            Sprites.Remove(sprite);

            if (DelaySprite == sprite)
            {
                DelaySprite = null;
            }
        }
Beispiel #27
0
        public static List <Sprite> GetSprites(string tileSet, string tileName)
        {
            List <Sprite> sprites = new List <Sprite>();

            if (Sprites.ContainsKey(tileSet))
            {
                List <Tuple <string, Sprite> > find = Sprites[tileSet].FindAll(x => x.First.Contains(tileName));
                foreach (Tuple <string, Sprite> found in find)
                {
                    sprites.Add(found.Second);
                }
            }

            if (sprites.Count == 0)
            {
                List <Sprite> defaultSprite = new List <Sprite>();
                defaultSprite.Add(Sprites["DEFAULT"][0].Second);
                return(defaultSprite);
            }

            return(sprites);
        }
Beispiel #28
0
        private void InitializeSprites(int tileWidth, int tileHeight)
        {
            Sprites.Clear();

            for (int x = 0; x < numColumns; x++)
            {
                for (int y = 0; y < numRows; y++)
                {
                    Sprite sprite = Sprites.CreateSprite(matrixes[0], new Frame(tilesheet, x, y),
                                                         x.ToString() + "-" + y.ToString());
                    sprite.MoveSprite((float)x, (float)y);
                    sprite.Visible = true;
                }
            }

            // remove the bottom-right tile; this will be the space for sliding
            int maxX = numColumns - 1;
            int maxY = numRows - 1;

            Sprites.GetSpriteByID(maxX.ToString() + "-" + maxY.ToString()).Dispose();
            openSpace = new Point(maxX, maxY);
        }
Beispiel #29
0
        public void Spawn(string name, Sprites sprite, string color, string token)
        {
            // sanitize the name
            if (name != null &&
                name.Length > World.Hook.MaxNameLength)
            {
                name = name.Substring(0, World.Hook.MaxNameLength);
            }

            CummulativeBoostRequested = false;
            CummulativeShootRequested = false;

            Name = name;

            ShipSprite = sprite;
            Color      = color;
            Token      = token;

            AliveSince = World.Time;

            IsSpawning = true;
        }
Beispiel #30
0
        protected override void OnUpdateLogic(float lastFrameTimeInSecond)
        {
            base.OnUpdateLogic(lastFrameTimeInSecond);

            if (Focused)
            {
                Keyboard.GetCurrentState(ref KeyboardState);
            }
            else
            {
                KeyboardState.PressedKeys.Clear();
            }

            Mouse.GetCurrentState(ref MouseState);
            MouseClientPosition = PointToClient(System.Windows.Forms.Cursor.Position).ToVector2();

            if (!new Rectangle(0, 0, ClientSize.Width, ClientSize.Height).Contains(
                    (int)MouseClientPosition.X, (int)MouseClientPosition.Y))
            {
                MouseState.Z = 0;
            }

            foreach (var sprite in Sprites.Values)
            {
                sprite.OnUpdate(lastFrameTimeInSecond);
            }

            var toDestroyIds = Sprites.Values.Where(x => x.ReadyToRemove).Select(x => x.Id).ToList();

            if (toDestroyIds.Count > 0)
            {
                foreach (var id in toDestroyIds)
                {
                    Sprites[id].Dispose();
                    Sprites.Remove(id);
                }
                World.ProcessChanges();
            }
        }
Beispiel #31
0
        private Grid GetGrid(int x, int y)
        {
            Sprites ss = GetSprites();

            if (ss == null)
            {
                return(null);
            }
            ISprite[] s = ss.GetSprites();
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i] is Grid)
                {
                    Grid g = (Grid)s[i];
                    if (g.GetCollisionBox().Contains(x, y))
                    {
                        return(g);
                    }
                }
            }
            return(null);
        }
Beispiel #32
0
        public void StartSpriteSheetGeneration()
        {
            MilkshakePreferences prefs = MilkshakeForm.Instance.Preferences;

            CheckForNewEntry(comboBoxInputDir.Text, this.LastInputDir);
            CheckForNewEntry(comboBoxOutputDir.Text, this.LastOutputDir);
            CheckForNewEntry(comboBoxName.Text, this.LastNames);
            prefs.ToolSpritesheetLastInputFolder              = ConvertListToString(this.LastInputDir);
            prefs.ToolSpritesheetLastOutputFolder             = ConvertListToString(this.LastOutputDir);
            prefs.ToolSpritesheetLastOutputName               = ConvertListToString(this.LastNames);
            prefs.ToolSpritesheetLastSafeBorderSize           = (int)numericUpDownSafeBorderSize.Value;
            prefs.ToolSpritesheetLastCorrectTransparencyColor = checkBoxAlphaCorrection.Checked;
            prefs.ToolSpritesheetLastReplaceBaseColor         = checkBoxOverrideBaseColor.Checked;
            prefs.ToolSpritesheetLastPadTexturePowerOfTwo     = checkBoxPowerOf2.Checked;
            prefs.ToolSpritesheetLastBaseColor = new XnaColor(this.BaseTextureColor.R,
                                                              this.BaseTextureColor.G, this.BaseTextureColor.B);

            this.Sprites.Clear();
            String        path = comboBoxInputDir.Text;
            DirectoryInfo di   = new DirectoryInfo(path);

            FileInfo[] rgFiles = di.GetFiles("*.*");
            foreach (FileInfo fi in rgFiles)
            {
                String fileExt = fi.Extension.ToLower();
                if (fileExt == ".png" || fileExt == ".jpg" ||
                    fileExt == ".dds" || fileExt == ".bmp" || fileExt == ".tga")
                {
                    Console.WriteLine(Sprites.Count + "] Packing sprite " + fi.Name);
                    SpriteInfo newInfo = new SpriteInfo(Path.GetFileNameWithoutExtension(fi.Name));
                    newInfo.Texture2D = Texture2D.FromFile(IceCream.Drawing.DrawingManager.GraphicsDevice, fi.FullName);
                    newInfo.PixelData = new uint[newInfo.Texture2D.Width * newInfo.Texture2D.Height];
                    newInfo.Texture2D.GetData <uint>(newInfo.PixelData);
                    Sprites.Add(newInfo);
                }
            }
            PackSprites((int)numericUpDownSafeBorderSize.Value, comboBoxOutputDir.Text, comboBoxName.Text);
        }
Beispiel #33
0
        public void Spawn(string name, Sprites sprite, string color, string token, string userColor = null)
        {
            if (IsAlive || IsSpawning)
            {
                return;
            }

            if (!World.CanSpawn)
            {
                if (World.CanSpawnReason != null)
                {
                    SendMessage(World.CanSpawnReason);
                }
                return;
            }

            UserColor = userColor;

            // sanitize the name
            if (name != null &&
                name.Length > World.Hook.MaxNameLength)
            {
                name = name.Substring(0, World.Hook.MaxNameLength);
            }

            CummulativeBoostRequested = false;
            CummulativeShootRequested = false;

            Name = name;

            ShipSprite = sprite;
            Color      = color;
            Token      = token;

            AliveSince = World.Time;

            IsSpawning = true;
        }
        protected override void LoadContent()
        {
            Content.RootDirectory = "";
            IsMouseVisible        = true;

            PandaMonogameConfig.Logging = true;

            ModManager.Instance.Init(Content);
            ModManager.Instance.LoadList("Mods", "mods.xml", "assets.xml");
            ModManager.Instance.ImportAssets();
            ModManager.Instance.AssetManager.Import("Assets\\assets.xml");

            SettingsManager.Instance.Load("Assets\\settings.xml");

#if DEBUG
            IsFixedTimeStep = false;
            _graphics.SynchronizeWithVerticalRetrace = false;
#endif

            _graphics.PreferredBackBufferWidth  = SettingsManager.Instance.GetSetting <int>("window", "width");
            _graphics.PreferredBackBufferHeight = SettingsManager.Instance.GetSetting <int>("window", "height");
            _graphics.ApplyChanges();

            ModManager.Instance.SoundManager.SetVolume((int)SoundType.Music, SettingsManager.Instance.GetSetting <float>("sound", "musicvolume"));
            ModManager.Instance.SoundManager.SetVolume((int)SoundType.SoundEffect, SettingsManager.Instance.GetSetting <float>("sound", "sfxvolume"));
            ModManager.Instance.SoundManager.SetVolume((int)SoundType.UI, SettingsManager.Instance.GetSetting <float>("sound", "uivolume"));

            _spriteBatch = new SpriteBatch(GraphicsDevice);

            Sprites.Load(GraphicsDevice);
            WorldData.Load();
            EntityData.Load();

            //ChangeGameState((int)GameStateType.Startup);
            ChangeGameState((int)GameStateType.Menu);

            Window.TextInput += Window_TextInput;
        }
Beispiel #35
0
        //A classe fábrica também oferece um método para obter o objeto.
        //Assim, o acesso a estes objetos fica centralizado e unificado a partir desta classe.
        public ISpriteFlyweight getFlyweight(Sprites jogador)
        {
            switch (jogador)
            {
            case Sprites.JOGADOR:
                return(flyweights.ElementAt(0));

            case Sprites.INIMIGO_1:
                return(flyweights.ElementAt(1));

            case Sprites.INIMIGO_2:
                return(flyweights.ElementAt(2));

            case Sprites.INIMIGO_3:
                return(flyweights.ElementAt(3));

            case Sprites.CENARIO_1:
                return(flyweights.ElementAt(4));

            default:
                return(flyweights.ElementAt(5));
            }
        }
Beispiel #36
0
 /// <summary>
 /// Checks if any visible portion of a sprite intersects current node
 /// </summary>
 /// <param name="_sprite">Sprite to check</param>
 /// <returns>True if sprite is intersects current node</returns>
 private bool IntersectsNode(Sprites.CollidableSprite _sprite)
 {
     return ((_sprite.NegX > NegX && _sprite.NegX < PosX) || (_sprite.PosX > NegX && _sprite.PosX < PosX)) &&
            ((_sprite.NegY > NegY && _sprite.NegY < PosY) || (_sprite.PosY > NegX && _sprite.PosY < PosY));
 }
Beispiel #37
0
 /// <summary>
 /// Checks if the collidable portion of a sprite is contained inside current node
 /// </summary>
 /// <param name="_sprite">Sprite to check</param>
 /// <returns>True if sprite is contained inside current node</returns>
 private bool InNode(Sprites.CollidableSprite _sprite)
 {
     return _sprite.CollidableNegX > NegX &&
            _sprite.CollidablePosX < PosX &&
            _sprite.CollidableNegY > NegY &&
            _sprite.CollidablePosY < PosY;
 }
Beispiel #38
0
 public void Destroy()
 {
     lock (this)
     {
         useKeyListener = false;
         useTouchListener = false;
         replaceLoading = false;
         replaceDelay.SetDelay(10);
         tx = ty = 0;
         isClose = true;
         CallEvents(false);
         isTranslate = false;
         isNext = false;
         isGravity = false;
         isCamera = false;
         isLock = true;
         if (touchs != null)
         {
             touchs.Clear();
             touchs = null;
         }
         if (keys != null)
         {
             keys.Clear();
             touchs = null;
         }
         if (sprites != null)
         {
             sprites.Dispose();
             sprites = null;
         }
         if (desktop != null)
         {
             desktop.Dispose();
             desktop = null;
         }
         if (currentScreen != null)
         {
             LTexture parent = currentScreen.GetParent();
             if (parent != null)
             {
                 parent.CloseChildAll();
                 parent.Destroy();
             }
             else
             {
                 currentScreen.Destroy();
             }
             currentScreen = null;
         }
         if (gravityHandler != null)
         {
             gravityHandler.Dispose();
             gravityHandler = null;
         }
         camera = null;
         if (releases != null)
         {
             foreach (LRelease r in releases)
             {
                 if (r != null)
                 {
                     r.Dispose();
                 }
             }
             releases.Clear();
         }
         Dispose();
     }
 }
Beispiel #39
0
 public virtual void Destroy()
 {
     lock (this)
     {
         if (useScreenListener)
         {
             foreach (ScreenListener t in screens)
             {
                 t.Dispose();
             }
         }
         useScreenListener = false;
         replaceLoading = false;
         replaceDelay.SetDelay(10);
         tx = ty = 0;
         isClose = true;
         CallEvents(false);
         isTranslate = false;
         isNext = false;
         isGravity = false;
         isNext = false;
         isLock = true;
         if (sprites != null)
         {
             sprites.Dispose();
             sprites = null;
         }
         if (desktop != null)
         {
             desktop.Dispose();
             desktop = null;
         }
         if (currentScreen != null)
         {
             LTexture parent = currentScreen.GetParent();
             if (parent != null)
             {
                 parent.CloseChildAll();
                 parent.Destroy();
             }
             else
             {
                 currentScreen.Destroy();
             }
             currentScreen = null;
         }
         if (gravityHandler != null)
         {
             gravityHandler.Dispose();
             gravityHandler = null;
         }
         if (releases != null)
         {
             foreach (LRelease r in releases)
             {
                 if (r != null)
                 {
                     r.Dispose();
                 }
             }
             CollectionUtils.Clear(releases);
         }
         Dispose();
     }
 }
Beispiel #40
0
 /// <summary>
 /// Adds a sprite to the QuadTree
 /// </summary>
 /// <param name="_sprite">Sprite to add</param>
 public void Add(Sprites.CollidableSprite _sprite)
 {
     root.Add(_sprite);
 }
Beispiel #41
0
    // Use this for initialization
    void Start()
    {
        genderChar = ChooseGender();

        GameObject nameBox = (GameObject)Instantiate(nameBoxType, new Vector3(this.transform.position.x, this.transform.position.y - 1, this.transform.position.z), Quaternion.identity);
        nameBox.GetComponent<TextMesh>().text = NameScript.GetName(this.tag, genderChar);
        nameBox.transform.parent = this.transform;

        spriteHolder = GameObject.Find("SpritesHolder").GetComponent<Sprites>();

        SpriteRenderer thisSprite = this.transform.GetChild(0).GetComponent<SpriteRenderer>();
        thisSprite.sprite = spriteHolder.GetZombieSprite(genderChar);

        // Determine type of zombie, and set stats accordingly
        // Female Zombie Brute
        if (thisSprite.sprite == spriteHolder.spriteZombiesF[0]){
            this.transform.GetComponent<AIMovement>().moveSpeed = Random.Range(2.0f, 2.6f);
            health = 4;
            damage = 2;
            score = 10;
            dropChance = 35.0f;
        }
        // Crawling Zombie
        else if (thisSprite.sprite == spriteHolder.spriteZombiesF[0] || thisSprite.sprite == spriteHolder.spriteZombiesM[2] )
        {
            this.transform.GetComponent<AIMovement>().moveSpeed = Random.Range(0.5f, 1.6f);
            health = 2;
            damage = 1;
            score = 5;
            dropChance = 15.0f;
        }
        // Male Zombie Brute
        else if (thisSprite.sprite == spriteHolder.spriteZombiesM[0]){
            this.transform.GetComponent<AIMovement>().moveSpeed = Random.Range(2.5f, 2.9f);
            health = 2;
            damage = 2;
            score = 10;
            dropChance = 35.0f;
        }
        // Fast Zombie
        else if (thisSprite.sprite == spriteHolder.spriteZombiesM[1]){
            this.transform.GetComponent<AIMovement>().moveSpeed = Random.Range(2.8f, 3.5f);
            health = 3;
            damage = 1;
            score = 8;
            dropChance = 15.0f;
        }

        thisSprite.color = new Color(Random.Range(0.8f, 1f), Random.Range(0.8f, 1f), Random.Range(0.8f, 1f));
    }
Beispiel #42
0
        public static void RenderMoveTargettingDisplay(RendererDestinationData destData, Sprites.ISprite attacker, Logic.Moves.Move move)
        {
            switch (move.RangeType) {
                case Enums.MoveRange.FrontOfUserUntil:
                case Enums.MoveRange.LineUntilHit:
                    {
                        #region Front of user Until
                        switch (attacker.Direction)
                        {
                            case Enums.Direction.Up:
                                {
                                    int y = attacker.Y;
                                    for (int i = 1; i <= move.Range; i++)
                                    {
                                        y = attacker.Y - i;
                                        //if (!ShouldContinueRenderingTargettingDisplay(Logic.Maps.MapHelper.ActiveMap,
                                        //    attacker.X, y)) {
                                        //    break;
                                        //}
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X, y), Enums.MapID.Active))
                                        {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X, y))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                            break;
                                        }
                                    }
                                }
                                break;
                            case Enums.Direction.Down:
                                {
                                    int y = attacker.Y;
                                    for (int i = 1; i <= move.Range; i++)
                                    {
                                        y = attacker.Y + i;
                                        //if (!ShouldContinueRenderingTargettingDisplay(Logic.Maps.MapHelper.ActiveMap,
                                        //    attacker.X, y)) {
                                        //    break;
                                        //}
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X, y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X, y))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                            break;
                                        }
                                    }
                                }
                                break;
                            case Enums.Direction.Left:
                                {
                                    int x = attacker.X;
                                    for (int i = 1; i <= move.Range; i++)
                                    {
                                        x = attacker.X - i;
                                        //if (!ShouldContinueRenderingTargettingDisplay(Logic.Maps.MapHelper.ActiveMap,
                                        //     x, attacker.Y)) {
                                        //    break;
                                        //}
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(x, attacker.Y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            x, attacker.Y))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                            break;
                                        }
                                    }
                                }
                                break;
                            case Enums.Direction.Right:
                                {
                                    int x = attacker.X;
                                    for (int i = 1; i <= move.Range; i++)
                                    {
                                        x = attacker.X + i;
                                        //if (!ShouldContinueRenderingTargettingDisplay(Logic.Maps.MapHelper.ActiveMap,
                                        //    x, attacker.Y)) {
                                        //    break;
                                        //}
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(x, attacker.Y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            x, attacker.Y))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                            break;
                                        }
                                    }
                                }
                                break;
                        }
                        #endregion
                    }
                    break;
                case Enums.MoveRange.StraightLine:
                case Enums.MoveRange.FrontOfUser: {
                        #region Front of user
                        switch (attacker.Direction) {
                            case Enums.Direction.Up: {
                                    int y = attacker.Y;
                                    for (int i = 1; i <= move.Range; i++) {
                                        y = attacker.Y - i;
                                        //if (!ShouldContinueRenderingTargettingDisplay(Logic.Maps.MapHelper.ActiveMap,
                                        //    attacker.X, y)) {
                                        //    break;
                                        //}
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X, y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X, y)) {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        } else {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        }
                                    }
                                }
                                break;
                            case Enums.Direction.Down: {
                                    int y = attacker.Y;
                                    for (int i = 1; i <= move.Range; i++) {
                                        y = attacker.Y + i;
                                        //if (!ShouldContinueRenderingTargettingDisplay(Logic.Maps.MapHelper.ActiveMap,
                                        //    attacker.X, y)) {
                                        //    break;
                                        //}
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X, y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X, y)) {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        } else {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X), Screen.ScreenRenderer.ToTileY(y) + Logic.Players.PlayerManager.MyPlayer.Offset.Y));
                                        }
                                    }
                                }
                                break;
                            case Enums.Direction.Left: {
                                    int x = attacker.X;
                                    for (int i = 1; i <= move.Range; i++) {
                                        x = attacker.X - i;
                                        //if (!ShouldContinueRenderingTargettingDisplay(Logic.Maps.MapHelper.ActiveMap,
                                        //     x, attacker.Y)) {
                                        //    break;
                                        //}
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(x, attacker.Y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            x, attacker.Y)) {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        } else {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        }
                                    }
                                }
                                break;
                            case Enums.Direction.Right: {
                                    int x = attacker.X;
                                    for (int i = 1; i <= move.Range; i++) {
                                        x = attacker.X + i;
                                        //if (!ShouldContinueRenderingTargettingDisplay(Logic.Maps.MapHelper.ActiveMap,
                                        //    x, attacker.Y)) {
                                        //    break;
                                        //}
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(x, attacker.Y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            x, attacker.Y)) {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        } else {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(x) + Logic.Players.PlayerManager.MyPlayer.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y)));
                                        }
                                    }
                                }
                                break;
                        }
                        #endregion
                    }
                    break;
                case Enums.MoveRange.User: {
                        #region user
                        destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                        #endregion
                    }
                    break;
                case Enums.MoveRange.Special:
                    {
                        #region Special
                        destData.Blit(srfcMoveTargetUnknown, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - 1) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - 1) + attacker.Offset.Y));
                        #endregion
                    }
                    break;
                case Enums.MoveRange.Floor:
                    {
                        #region Floor
                        int startX = Screen.ScreenRenderer.GetScreenLeft() - 1;
                        int startY = Screen.ScreenRenderer.GetScreenTop();
                        if (startX < 0)
                        {
                            startX = 0;
                        }
                        else if (startX + 19 > Screen.ScreenRenderer.RenderOptions.Map.MaxX)
                        {
                            startX = Screen.ScreenRenderer.RenderOptions.Map.MaxX - 19;
                        }
                        if (startY < 0)
                        {
                            startY = 0;
                        }
                        else if (startY + 14 > Screen.ScreenRenderer.RenderOptions.Map.MaxY)
                        {
                            startY = Screen.ScreenRenderer.RenderOptions.Map.MaxY - 14;
                        }

                        for (int x = startX; x < startX + 20; x++)
                        {
                            for (int y = startY; y < startY + 15; y++)
                            {
                                if (!Screen.ScreenRenderer.CanBeSeen(new Point(x, y), Enums.MapID.Active)) {
                                    destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(x), Screen.ScreenRenderer.ToTileY(y)));
                                } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                    x, y))
                                {
                                    destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(x), Screen.ScreenRenderer.ToTileY(y)));
                                }
                                else
                                {
                                    destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(x), Screen.ScreenRenderer.ToTileY(y)));
                                }
                            }
                        }
                        #endregion
                    }
                    break;
                case Enums.MoveRange.Room:
                    {
                        #region Room
                        for (int x = attacker.X - move.Range; x <= attacker.X + move.Range; x++)
                        {
                            for (int y = attacker.Y - move.Range; y <= attacker.Y + move.Range; y++)
                            {
                                if (!Screen.ScreenRenderer.CanBeSeen(new Point(x, y), Enums.MapID.Active)) {
                                    destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(x), Screen.ScreenRenderer.ToTileY(y)));
                                } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                    x, y))
                                {
                                    destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(x) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(y) + attacker.Offset.Y));
                                }
                                else
                                {
                                    destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(x) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(y) + attacker.Offset.Y));
                                }
                            }
                        }
                        #endregion
                    }
                    break;
                case Enums.MoveRange.FrontAndSides:
                    {
                        #region Front and Sides
                        for (int r = 0; r <= move.Range; r++)
                        {

                            //check adjacent tiles
                            switch (attacker.Direction)
                            {
                                case Enums.Direction.Down:
                                    {
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X, attacker.Y + r), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X, attacker.Y + r))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                        }

                                        for (int s = 1; s <= r; s++)
                                        {

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - s, attacker.Y + r), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - s, attacker.Y + r))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            }

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + s, attacker.Y + r), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + s, attacker.Y + r))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            }

                                        }

                                    }
                                    break;
                                case Enums.Direction.Up:
                                    {
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X, attacker.Y - r), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X, attacker.Y - r))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                        }

                                        for (int s = 1; s <= r; s++)
                                        {

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - s, attacker.Y - r), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - s, attacker.Y - r))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            }

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + s, attacker.Y - r), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + s, attacker.Y - r))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            }

                                        }

                                    }
                                    break;
                                case Enums.Direction.Left:
                                    {
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - r, attacker.Y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - r, attacker.Y))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        }

                                        for (int s = 1; s <= r; s++)
                                        {

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - r, attacker.Y - s), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - r, attacker.Y - s))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            }

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - r, attacker.Y + s), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - r, attacker.Y + s))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            }

                                        }
                                    }
                                    break;
                                case Enums.Direction.Right:
                                    {
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + r, attacker.Y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + r, attacker.Y))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        }

                                        for (int s = 1; s <= r; s++)
                                        {

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + r, attacker.Y - s), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + r, attacker.Y - s))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            }

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + r, attacker.Y + s), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + r, attacker.Y + s))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            }

                                        }
                                    }
                                    break;
                            }

                        }
                        #endregion
                    }
                    break;
                case Enums.MoveRange.ArcThrow:
                    {
                        #region Arc Throw
                        bool stopattile = false;
                        for (int r = 0; r <= move.Range; r++)
                        {

                            //check adjacent tiles
                            switch (attacker.Direction)
                            {
                                case Enums.Direction.Down:
                                    {
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X, attacker.Y + r), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X, attacker.Y + r))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            stopattile = true;
                                        }

                                        if (stopattile)
                                        {
                                            break;
                                        }

                                        for (int s = 1; s <= r; s++)
                                        {

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - s, attacker.Y + r), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - s, attacker.Y + r))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                                stopattile = true;
                                            }

                                            if (stopattile)
                                            {
                                                break;
                                            }

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + s, attacker.Y + r), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + s, attacker.Y + r))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + r) + attacker.Offset.Y));
                                                stopattile = true;
                                            }

                                            if (stopattile)
                                            {
                                                break;
                                            }

                                        }

                                    }
                                    break;
                                case Enums.Direction.Up:
                                    {
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X, attacker.Y - r), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X, attacker.Y - r))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            stopattile = true;
                                        }

                                        if (stopattile)
                                        {
                                            break;
                                        }

                                        for (int s = 1; s <= r; s++)
                                        {

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - s, attacker.Y - r), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - s, attacker.Y - r))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                                stopattile = true;
                                            }

                                            if (stopattile)
                                            {
                                                break;
                                            }

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + s, attacker.Y - r), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + s, attacker.Y - r))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + s) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - r) + attacker.Offset.Y));
                                                stopattile = true;
                                            }

                                            if (stopattile)
                                            {
                                                break;
                                            }

                                        }

                                    }
                                    break;
                                case Enums.Direction.Left:
                                    {
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - r, attacker.Y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - r, attacker.Y))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                            stopattile = true;
                                        }

                                        if (stopattile)
                                        {
                                            break;
                                        }

                                        for (int s = 1; s <= r; s++)
                                        {

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - r, attacker.Y - s), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - r, attacker.Y - s))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                                stopattile = true;
                                            }

                                            if (stopattile)
                                            {
                                                break;
                                            }

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X - r, attacker.Y + s), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X - r, attacker.Y + s))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X - r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                                stopattile = true;
                                            }

                                            if (stopattile)
                                            {
                                                break;
                                            }

                                        }
                                    }
                                    break;
                                case Enums.Direction.Right:
                                    {
                                        if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + r, attacker.Y), Enums.MapID.Active)) {
                                            destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + r, attacker.Y))
                                        {
                                            destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                        }
                                        else
                                        {
                                            destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y) + attacker.Offset.Y));
                                            stopattile = true;
                                        }

                                        if (stopattile)
                                        {
                                            break;
                                        }

                                        for (int s = 1; s <= r; s++)
                                        {

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + r, attacker.Y - s), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + r, attacker.Y - s))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y - s) + attacker.Offset.Y));
                                                stopattile = true;
                                            }

                                            if (stopattile)
                                            {
                                                break;
                                            }

                                            if (!Screen.ScreenRenderer.CanBeSeen(new Point(attacker.X + r, attacker.Y + s), Enums.MapID.Active)) {
                                                destData.Blit(srfcMoveTargetTileDark, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            } else if (!IsRenderingTargetOnSprite(Logic.Maps.MapHelper.ActiveMap,
                                            attacker.X + r, attacker.Y + s))
                                            {
                                                destData.Blit(srfcMoveTargetTile, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                            }
                                            else
                                            {
                                                destData.Blit(srfcMoveTargetTileHit, new Point(Screen.ScreenRenderer.ToTileX(attacker.X + r) + attacker.Offset.X, Screen.ScreenRenderer.ToTileY(attacker.Y + s) + attacker.Offset.Y));
                                                stopattile = true;
                                            }

                                            if (stopattile)
                                            {
                                                break;
                                            }

                                        }
                                    }
                                    break;
                            }

                            if (stopattile)
                            {
                                break;
                            }

                        }
                        #endregion
                    }
                    break;
            }
        }
Beispiel #43
0
 /// <summary>
 /// Adds a sprite to the QuadTree, meant to invoked by root node
 /// </summary>
 /// <param name="_sprite">Sprite to add</param>
 internal void Add(Sprites.CollidableSprite _sprite)
 {
     List<Sprites.CollidableSprite> _sprites = new List<Sprites.CollidableSprite>();
     _sprites.Add(_sprite);
     Add(_sprites);
 }
Beispiel #44
0
 public override void Dispose()
 {
     running = false;
     try
     {
         if (avgThread != null)
         {
             avgThread.Interrupt();
             avgThread = null;
         }
     }
     catch (Exception)
     {
     }
     if (desktop != null)
     {
         desktop.Dispose();
         desktop = null;
     }
     if (sprites != null)
     {
         sprites.Dispose();
         sprites = null;
     }
     if (command != null)
     {
         command = null;
     }
     if (scrCG != null)
     {
         scrCG.Dispose();
         scrCG = null;
     }
     if (dialog != null)
     {
         if (dialog.GetFileName() != null)
         {
             dialog.Destroy();
             dialog = null;
         }
     }
     base.Dispose();
 }
Beispiel #45
0
 private void InitDesktop()
 {
     if (desktop != null && sprites != null)
     {
         return;
     }
     this.desktop = new Desktop(this, GetWidth(), GetHeight());
     this.sprites = new Sprites(GetWidth(), GetHeight());
     if (dialog == null)
     {
         LImage tmp = LImage.CreateImage(GetWidth() - 20,
     GetHeight() / 2 - 20, true);
         LGraphics g = tmp.GetLGraphics();
         g.SetColor(0, 0, 0, 125);
         g.FillRect(0, 0, tmp.GetWidth(), tmp.GetHeight());
         g.Dispose();
         g = null;
         dialog = new LTexture(GLLoader.GetTextureData(tmp));
         if (tmp != null)
         {
             tmp.Dispose();
             tmp = null;
         }
     }
     this.message = new LMessage(dialog, 0, 0);
     this.message.SetFontColor(LColor.white);
     int size = message.GetWidth() / (message.GetMessageFont().GetSize());
     if (LSystem.scaleWidth != 1 || LSystem.scaleHeight != 1)
     {
         if (size % 2 != 0)
         {
             size = size + 2;
         }
         else
         {
             size = size + 3;
         }
     }
     else
     {
         if (size % 2 != 0)
         {
             size = size - 3;
         }
         else
         {
             size = size - 4;
         }
     }
     this.message.SetMessageLength(size);
     this.message.SetLocation((GetWidth() - message.GetWidth()) / 2,
             GetHeight() - message.GetHeight() - 10);
     this.message.SetVisible(false);
     this.select = new LSelect(dialog, 0, 0);
     this.select.SetLocation(message.X(), message.Y());
     this.scrCG = new AVGCG();
     this.desktop.Add(message);
     this.desktop.Add(select);
     this.select.SetVisible(false);
 }
Beispiel #46
0
            /// <summary>
            /// Constructor, used to create root node
            /// </summary>
            /// <param name="_w">Width of node</param>
            /// <param name="_h">Height of node</param>
            /// <param name="_sprite">Sprite in node</param>
            private Node(int _w, int _h, Sprites.CollidableSprite _sprite)
            {
                width = _w;
                height = _h;
                parent = null;
                centerPoint = new Vector2(width / 2, height / 2);

                subsections = null;

                sprites = new Sprites.CollidableSprite[] { _sprite };
            }
Beispiel #47
0
 /// <summary>
 /// Checks if the collide portion of a sprite is contained inside a subsection of current node
 /// </summary>
 /// <param name="_sprite">Sprite to check</param>
 /// <returns>True if sprite is contained inside a subsection of current node</returns>
 private bool InSubsection(Sprites.CollidableSprite _sprite)
 {
     return (_sprite.CollidablePosX < CenterX || _sprite.CollidableNegX > CenterX) &&
            (_sprite.CollidablePosY < CenterY || _sprite.CollidableNegY > CenterY);
 }
Beispiel #48
0
            /// <summary>
            /// Constructor, used to create root node
            /// </summary>
            /// <param name="_w">Width of node</param>
            /// <param name="_h">Height of node</param>
            /// <param name="_sprites">Sprites in node</param>
            private Node(int _w, int _h, Sprites.CollidableSprite[] _sprites)
            {
                width = _w;
                height = _h;
                parent = null;
                centerPoint = new Vector2(width / 2, height / 2);

                subsections = null;

                sprites = null;

                PlaceSprites(new List<Sprites.CollidableSprite>(_sprites));

                if (subsections != null)
                    Console.WriteLine("Root has subsections");
                else
                    Console.WriteLine("Root does not have subsections");
            }
 void fetchComponents()
 {
     timeController = GameObject.FindGameObjectWithTag ("Time").GetComponent<TimeController>();
     netPlay = GetComponentInParent<NetworkPlayer> ();
     cam = GetComponentInParent<NetworkPlayer> ().playerCam;
     sprites = GetComponentInParent<Sprites> ();
     FleetsList = GameObject.FindGameObjectWithTag ("Lists").GetComponent<Lists> ().FleetsList;
 }
Beispiel #50
0
	//Setup_________________________________________________________________________________________________
	void SetupGo(){
		fleetGo = this.gameObject;
		if (fleetGo == null) {
			Debug.Log ("Fatal GameObject load error");
		}

		SpritesGo = GameObject.FindGameObjectWithTag ("GameController");
		sprites = SpritesGo.GetComponent<Sprites>();
		fleetSprite = sprites.FleetSprite;
		if (fleetSprite == null) {
			Debug.Log ("Fleet sprite load error");
		}

		fleetGo.transform.position.Set(position.x, position.y, position.z);
		fleetGo.AddComponent<SpriteRenderer>();

		selectionEffect = fleetGo.GetComponentInChildren<ParticleSystem> ();
		SetGlow = false;
	}
Beispiel #51
0
 private void InitDesktop()
 {
     if (desktop != null && sprites != null)
     {
         return;
     }
     this.desktop = new Desktop(this, GetWidth(), GetHeight());
     this.sprites = new Sprites(GetWidth(), GetHeight());
     if (dialog == null)
     {
         LPixmap g = new LPixmap(GetWidth() - 20,
                 GetHeight() / 2 - 20, true);
         g.SetAlphaValue(0, 0, 0, 125);
         g.FillRect(0, 0, g.GetWidth(), g.GetHeight());
         g.Dispose();
         dialog = g.Texture;
         g = null;
     }
     this.message = new LMessage(dialog, 0, 0);
     this.message.SetFontColor(LColor.white);
     int size = message.GetWidth() / (message.GetMessageFont().GetSize());
     if (LSystem.scaleWidth != 1 || LSystem.scaleHeight != 1)
     {
         if (size % 2 != 0)
         {
             size = size + 2;
         }
         else
         {
             size = size + 3;
         }
     }
     else
     {
         if (size % 2 != 0)
         {
             size = size - 3;
         }
         else
         {
             size = size - 4;
         }
     }
     this.message.SetMessageLength(size);
     this.message.SetLocation((GetWidth() - message.GetWidth()) / 2,
             GetHeight() - message.GetHeight() - 10);
     this.message.SetVisible(false);
     this.select = new LSelect(dialog, 0, 0);
     this.select.SetLocation(message.X(), message.Y());
     this.scrCG = new AVGCG();
     this.desktop.Add(message);
     this.desktop.Add(select);
     this.select.SetVisible(false);
 }
Beispiel #52
-1
 public virtual void OnCreate(int width, int height)
 {
     this.mode = SCREEN_CANVAS_REPAINT;
     this.baseInput = this;
     this.width = width;
     this.height = height;
     this.halfWidth = width / 2;
     this.halfHeight = height / 2;
     this.touchX = touchY = lastTouchX = lastTouchY = touchDX = touchDY = 0;
     this.isLoad = isLock = isClose = isTranslate = isGravity = false;
     if (sprites != null)
     {
         sprites.Dispose();
         sprites = null;
     }
     this.sprites = new Sprites(width, height);
     if (desktop != null)
     {
         desktop.Dispose();
         desktop = null;
     }
     this.desktop = new Desktop(baseInput, width, height);
     this.isNext = true;
 }