예제 #1
0
        /// <summary>
        /// For a single Animated Tile in a sprite sheet, using Sprite2D but zeroing out the Position and Scale
        /// </summary>
        public Tiles(AnimatedSprite2D AnimatedSprite, string Tag, string ShortTag, bool Register)
        {
            this.Tile_Sprite.Add(AnimatedSprite);
            this.Tag      = Tag;
            this.ShortTag = ShortTag;

            if (Register)
            {
                Log.Info($"[TILES]({this.Tag}) - Has been registered!");
                EEngine.RegisterTile(this);
            }
        }
예제 #2
0
        public Level(Vector2 Level_Position, Vector2 Level_Scale, Tiles Level_Tile, Vector2 Level_Array_Position)
        {
            this.Level_Position       = Level_Position;
            this.Level_Scale          = Level_Scale;
            this.Level_Tile           = new Tiles(Level_Scale, Level_Tile.Tile_Sprite, Level_Tile.Tag, Level_Tile.ShortTag, false);
            this.Level_Array_Position = Level_Array_Position;

            if (Level_Tile != null)
            {
                Log.Info($"[LEVEL]({Level_Tile.Tag} Tile at Position {this.Level_Position.X.ToString()}:{this.Level_Position.Y.ToString()}) - Has been registered!");
            }
            EEngine.RegisterLevel(this);
        }
예제 #3
0
        public Tiles(Vector2 Tile_Scale, List <AnimatedSprite2D> Tile, string Tag, string ShortTag, bool Register)
        {
            this.Tile_Scale  = Tile_Scale;
            this.Tile_Sprite = Tile;
            this.Tag         = Tag;
            this.ShortTag    = ShortTag;

            if (Register)
            {
                Log.Info($"[TILES]({this.Tag}) - Has been registered!");
                EEngine.RegisterTile(this);
            }
        }
예제 #4
0
파일: Effects.cs 프로젝트: PsiBrrr/EEngine
        public Effects(Vector2 Position, Vector2 Scale, AnimatedSprite2D EffectElement, string Tag, string ShortTag, bool Register)
        {
            this.Position      = Position;
            this.Scale         = Scale;
            this.EffectElement = EffectElement;
            this.Tag           = Tag;
            this.ShortTag      = ShortTag;

            if (Register)
            {
                EEngine.RegisterEffect(this);
                Log.Info($"[EFFECTS]({Tag}) - Has been registered!");
            }
        }
예제 #5
0
파일: Effects.cs 프로젝트: PsiBrrr/EEngine
        public Effects(List <Rectangle> Section, Image Image, List <string> SpriteTag, string Tag, string ShortTag)
        {
            List <Sprite2D> Sprites = new List <Sprite2D>();

            for (int i = 0; i < Section.Count; i++)
            {
                Sprites.Add(new Sprite2D(Section[i], Image, SpriteTag[i], true));
            }

            this.Scale         = new Vector2(Section[0].Width, Section[0].Height);
            this.EffectElement = new AnimatedSprite2D(Sprites, Tag);
            this.ShortTag      = ShortTag;

            Log.Info($"[EFFECTS]({Tag}) - Has been registered!");
            EEngine.RegisterEffect(this);
        }
예제 #6
0
        public Tiles(List <Rectangle> Section, Image Image, List <string> SpriteTag, string Tag, string ShortTag)
        {
            List <Sprite2D> Sprites = new List <Sprite2D>();

            for (int i = 0; i < Section.Count; i++)
            {
                Sprites.Add(new Sprite2D(Section[i], Image, SpriteTag[i], false));
            }

            this.Tile_Scale = new Vector2(Section[0].Width, Section[0].Height);
            this.Tile_Sprite.Add(new AnimatedSprite2D(Sprites, Tag));
            this.ShortTag = ShortTag;

            Log.Info($"[TILES]({Tag}) - Has been registered!");
            EEngine.RegisterTile(this);
        }
예제 #7
0
파일: Armies.cs 프로젝트: PsiBrrr/EEngine
        public Armies(Vector2 Position, Vector2 Scale, Units Unit, Effects Effect, Vector2 Army_Level_Array_Position)
        {
            try
            {
                this.Position = Position;
                this.Scale    = Scale;
                this.Unit     = new Units(Position, Scale, Unit.Unit_Sprite, Effect, Unit.Tag, Unit.ShortTag, false);
                this.Army_Level_Array_Position = Army_Level_Array_Position;

                EEngine.RegisterArmy(this);
                Log.Info($"[ARMIES]({this.Unit.Tag}) - Has been Registered!");
            }
            catch
            {
                Log.Error("[ARMIES] - Unable to Register!");
            }
        }
예제 #8
0
        public Tiles(List <List <Rectangle> > Section, Image Image, List <List <string> > SpriteTag, string Tag, string ShortTag)
        {
            List <Sprite2D> Sprites = new List <Sprite2D>();

            for (int i = 0; i < Section.Count; i++)
            {
                for (int j = 0; j < Section[i].Count; j++)
                {
                    Sprites.Add(new Sprite2D(Section[i][j], Image, SpriteTag[i][j], false));
                }
                this.Tile_Sprite.Add(new AnimatedSprite2D(Sprites, Tag));
                Sprites = new List <Sprite2D>();
            }

            this.Tag      = Tag;
            this.ShortTag = ShortTag;

            EEngine.RegisterTile(this);
            Log.Info($"[TILES]({Tag}) - Has been registered!");
        }
예제 #9
0
파일: Units.cs 프로젝트: PsiBrrr/EEngine
        public Units(Vector2 Unit_Position, Vector2 Unit_Scale, List <AnimatedSprite2D> Unit, Effects HealthEffect, string Tag, string ShortTag, bool Register)
        {
            this.Unit_Position = Unit_Position;
            this.Unit_Scale    = Unit_Scale;
            this.Unit_Sprite   = Unit;
            this.Tag           = Tag;
            this.ShortTag      = ShortTag;

            this.Health_Effect = new Effects(GetUnitHealthEffect(Unit_Position),
                                             HealthEffect.Scale * 2,
                                             HealthEffect.EffectElement,
                                             HealthEffect.Tag,
                                             HealthEffect.ShortTag,
                                             false);

            if (Register)
            {
                EEngine.RegisterUnit(this);
                Log.Info($"[UNITS]({Tag}) - Has been registered!");
            }
        }
예제 #10
0
파일: Units.cs 프로젝트: PsiBrrr/EEngine
        /// <summary>
        /// Create a new Unit from a AnimatedSprite2Ds
        /// </summary>
        /// <param name="Section">List of Rectangles. Is used to create an AnimatedSprite2D from multiple Sprite2Ds</param>
        /// <param name="Image">Sprite Sheet</param>
        /// <param name="SpriteTag">List of Strings. Is a unique Tag assigned to a Sprite2D</param>
        /// <param name="Tag">Unique Tag</param>
        /// <param name="ShortTag">Short hand unique Tag</param>
        public Units(List <Rectangle> Section, Image Image, List <string> SpriteTag, bool Flip, string Tag, string ShortTag)
        {
            List <Sprite2D> Sprites = new List <Sprite2D>();

            for (int i = 0; i < Section.Count; i++)
            {
                if (Flip)
                {
                    Sprites.Add(new Sprite2D(Section[i], Image, RotateFlipType.RotateNoneFlipX, SpriteTag[i], true));
                }
                else
                {
                    Sprites.Add(new Sprite2D(Section[i], Image, SpriteTag[i], true));
                }
            }

            this.Unit_Sprite.Add(new AnimatedSprite2D(Sprites, Tag));
            this.Tag      = Tag;
            this.ShortTag = ShortTag;

            EEngine.RegisterUnit(this);
            Log.Info($"[UNITS]({Tag}) - Has been registered!");
        }
예제 #11
0
파일: Units.cs 프로젝트: PsiBrrr/EEngine
 public void DestroySelf()
 {
     EEngine.UnRegisterUnit(this);
     Log.Info($"[UNITS]({this}) - Has been destroyed!");
 }
예제 #12
0
        public Level(Vector2 Scale, string[,] MapArray)
        {
            Vector2 StartPosition = Vector2.Zero();

            for (int x = 0; x < MapArray.GetLength(1); x++)
            {
                StartPosition.X += Scale.X / 2;
            }
            for (int y = 0; y < MapArray.GetLength(0); y++)
            {
                StartPosition.Y += Scale.Y / 2;
            }

            StartPosition.X = EEngine.GetScreenCenter().X - StartPosition.X - 10;
            StartPosition.Y = EEngine.GetScreenCenter().Y - StartPosition.Y - 20;

            EEngine.InitializeLevel(MapArray.GetLength(0));
            for (int i = 0; i < MapArray.GetLength(0); i++)
            {
                for (int j = 0; j < MapArray.GetLength(1); j++)
                {
                    new Level(new Vector2(j * Scale.X + StartPosition.X, i * Scale.Y + StartPosition.Y), Scale, EEngine.GetTile(MapArray[i, j]), new Vector2(j, i));
                }
            }
            EEngine.Loaded();
        }
예제 #13
0
파일: Effects.cs 프로젝트: PsiBrrr/EEngine
 public void DestroySelf()
 {
     Log.Info($"[EFFECTS]({Tag}) - Has been destroyed!");
     EEngine.UnRegisterEffect(this);
 }
예제 #14
0
 public static void CreateArmyUnit(Vector2 Position, Vector2 Scale, int Index, Vector2 Level_Array_Position)
 {
     new Armies(Position, Scale, GetUnit(Index), EEngine.GetEffect(0), Level_Array_Position);
 }
예제 #15
0
파일: Armies.cs 프로젝트: PsiBrrr/EEngine
 public void DestroySelf()
 {
     Log.Info($"[ARMIES]({this.Unit.Tag}) - Has been destroyed!");
     EEngine.UnRegisterArmy(this);
 }
예제 #16
0
 public void DestroySelf()
 {
     Log.Info($"[TILES]({Tag}) - Has been destroyed!");
     EEngine.UnRegisterTile(this);
 }