Beispiel #1
0
 public IEnumerable <float> GetPercentageModifier(Stats.Stats stat)
 {
     if (stat == Stats.Stats.Damage)
     {
         yield return(currentWeaponConfig.GetPercentageModifier());
     }
 }
Beispiel #2
0
        public ObjAiBase(Game game, string model, Stats.Stats stats, int collisionRadius = 40,
                         float x = 0, float y = 0, int visionRadius = 0, uint netId = 0) :
            base(game, model, stats, collisionRadius, x, y, visionRadius, netId)
        {
            _itemManager  = game.ItemManager;
            _scriptEngine = game.ScriptEngine;

            CharData = _game.Config.ContentManager.GetCharData(Model);

            stats.LoadStats(CharData);

            if (CharData.PathfindingCollisionRadius > 0)
            {
                CollisionRadius = CharData.PathfindingCollisionRadius;
            }
            else if (collisionRadius > 0)
            {
                CollisionRadius = collisionRadius;
            }
            else
            {
                CollisionRadius = 40;
            }

            Stats.CurrentMana   = stats.ManaPoints.Total;
            Stats.CurrentHealth = stats.HealthPoints.Total;

            if (!string.IsNullOrEmpty(model))
            {
                AaSpellData = _game.Config.ContentManager.GetSpellData(model + "BasicAttack");
                float baseAttackCooldown = 1.6f * (1.0f + CharData.AttackDelayOffsetPercent);
                AutoAttackCastTime        = baseAttackCooldown * (0.3f + CharData.AttackDelayCastOffsetPercent);
                AutoAttackProjectileSpeed = AaSpellData.MissileSpeed;
                IsMelee = CharData.IsMelee;
            }
            else
            {
                AutoAttackCastTime        = 0;
                AutoAttackProjectileSpeed = 500;
                IsMelee = true;
            }

            BuffSlots  = new IBuff[256];
            BuffList   = new List <IBuff>();
            _buffsLock = new object();
            Buffs      = new Dictionary <string, IBuff>();
            IsDashing  = false;
        }
Beispiel #3
0
        public ObjAiBase(Game game, string model, Stats.Stats stats, int collisionRadius = 40,
                         float x = 0, float y = 0, int visionRadius = 0, uint netId = 0) :
            base(game, model, stats, collisionRadius, x, y, visionRadius, netId)
        {
            _itemManager  = game.ItemManager;
            _scriptEngine = game.ScriptEngine;
            CharData      = _game.Config.ContentManager.GetCharData(Model);
            Stats.LoadStats(CharData);

            if (CharData.PathfindingCollisionRadius > 0)
            {
                CollisionRadius = CharData.PathfindingCollisionRadius;
            }
            else if (collisionRadius > 0)
            {
                CollisionRadius = collisionRadius;
            }
            else
            {
                CollisionRadius = 40;
            }

            Stats.CurrentMana   = stats.ManaPoints.Total;
            Stats.CurrentHealth = stats.HealthPoints.Total;
            if (!string.IsNullOrEmpty(model))
            {
                AaSpellData               = _game.Config.ContentManager.GetSpellData(model + "BasicAttack");
                AutoAttackDelay           = AaSpellData.CastFrame / 30.0f;
                AutoAttackProjectileSpeed = AaSpellData.MissileSpeed;
                IsMelee = CharData.IsMelee;
            }
            else
            {
                AutoAttackDelay           = 0;
                AutoAttackProjectileSpeed = 500;
                IsMelee = true;
            }

            AppliedBuffs = new Buff[256];
            BuffGameScriptControllers = new List <BuffGameScriptController>();
            BuffsLock = new object();
            Buffs     = new Dictionary <string, Buff>();
        }
        public PlayedCharacter(Bot bot, CharacterBaseInformations informations)
        {
            if (informations == null) throw new ArgumentNullException("informations");

            Bot = bot;

            Id = informations.id;
            Level = informations.level;
            Name = informations.name;
            Breed = DataProvider.Instance.Get<Breed>(informations.breed);
            Look = informations.entityLook;
            Sex = informations.sex;

            Inventory = new Inventory(this);
            Stats = new Stats.Stats(this);
            SpellsBook = new SpellsBook(this);
            Shortcuts = new ShortcutBar(this);
            Jobs = new List<Job>();
            Emotes = new List<Emoticon>();
        }
Beispiel #5
0
        public GameArea(Stats.Stats stats, ContentManager content, SoundControl soundControl)
        {
            texture      = content.Load <Texture2D>("field");
            bgPosition   = new Vector2(X + OFFSET_X, Y + OFFSET_Y);
            slots        = new BlockSlot[WIDTH, HEIGHT];
            this.content = content;
            this.stats   = stats;

            for (int i = 0; i < WIDTH; i++)
            {
                for (int j = 0; j < HEIGHT; j++)
                {
                    slots[i, j] = new BlockSlot(i, j, X, Y);
                }
            }

            tetrimino = new Tetrimino(Tetrimino.GenerateType(null), content, soundControl);
            PrepareNextTetrimino();
            canHold           = true;
            this.soundControl = soundControl;
        }
Beispiel #6
0
 public Abilities(Stats.Stats newStats)
 {
 }
Beispiel #7
0
 public Skills(Stats.Stats newStats)
 {
 }
Beispiel #8
0
 public ObjBuilding(Game game, string model, Stats.Stats stats, int collisionRadius = 40,
                    float x = 0, float y = 0, int visionRadius = 0, uint netId = 0) :
     base(game, model, stats, collisionRadius, x, y, visionRadius, netId)
 {
 }
 public ObjAnimatedBuilding(Game game, string model, Stats.Stats stats, int collisionRadius = 40,
                            float x = 0, float y = 0, int visionRadius = 0, uint netId = 0) :
     base(game, model, stats, collisionRadius, x, y, visionRadius, netId)
 {
     Replication = new ReplicationAnimatedBuilding(this);
 }
Beispiel #10
0
        public void Update(BlockSlot[,] slots, Stats.Stats stats, GameTime gameTime, KeyboardState kState, KeyboardState pkState)
        {
            if (falling)
            {
                //Update times
                double elapsedTime = gameTime.ElapsedGameTime.TotalMilliseconds;
                times[0] += elapsedTime;
                times[1] += elapsedTime;
                if (movingSideways && times[2] < TIME_2)
                {
                    times[2] += elapsedTime;
                }
                else if (!movingSideways)
                {
                    times[2] = 0;
                }

                //Clear blocks from game field
                for (int i = 0; i < 4; i++)
                {
                    for (int j = 0; j < 4; j++)
                    {
                        if (position.X + i >= 0 && position.X + i < GameArea.WIDTH &&
                            position.Y + j >= 0 && position.Y + j < GameArea.HEIGHT)
                        {
                            if (slots[(int)position.X + i, (int)position.Y + j].Block != null)
                            {
                                if (slots[(int)position.X + i, (int)position.Y + j].Block.Falling)
                                {
                                    slots[(int)position.X + i, (int)position.Y + j].Block = null;
                                }
                            }
                        }
                    }
                }

                //Fall
                if (times[0] >= stats.FallTimeout)
                {
                    MoveDown(slots, false);
                }
                else if (kState.IsKeyDown(Keys.Down) && times[1] >= TIME_1)
                {
                    MoveDown(slots, true);
                    stats.Score++;
                }
                if (kState.IsKeyDown(Keys.Space) && pkState.IsKeyUp(Keys.Space))
                {
                    while (falling)
                    {
                        MoveDown(slots, false);
                        stats.Score += 2;
                    }
                    soundControl.PlayDropHard();
                }

                //Move sideways
                if (kState.IsKeyDown(Keys.Left) || kState.IsKeyDown(Keys.Right))
                {
                    movingSideways = true;
                }
                else
                {
                    movingSideways = false;
                }
                if ((kState.IsKeyDown(Keys.Left) && pkState.IsKeyUp(Keys.Left)) ||
                    (kState.IsKeyDown(Keys.Left) && times[2] >= TIME_2 && times[1] >= TIME_1))
                {
                    MoveSideways(true, slots);
                }
                else if ((kState.IsKeyDown(Keys.Right) && pkState.IsKeyUp(Keys.Right)) ||
                         (kState.IsKeyDown(Keys.Right) && times[2] >= TIME_2 && times[1] >= TIME_1))
                {
                    MoveSideways(false, slots);
                }

                //Rotate
                else if (kState.IsKeyDown(Keys.Up) && pkState.IsKeyUp(Keys.Up))
                {
                    Rotate(true, slots);
                }
                else if (kState.IsKeyDown(Keys.LeftControl) && pkState.IsKeyUp(Keys.LeftControl))
                {
                    Rotate(false, slots);
                }

                //Set blocks on game field
                for (int i = 0; i < 4; i++)
                {
                    for (int j = 0; j < 4; j++)
                    {
                        if (position.X + i >= 0 && position.X + i < GameArea.WIDTH &&
                            position.Y + j >= 0 && position.Y + j < GameArea.HEIGHT)
                        {
                            if (slots[(int)position.X + i, (int)position.Y + j].Block == null)
                            {
                                slots[(int)position.X + i, (int)position.Y + j].Block = blocks[i, j];
                            }
                            else if (slots[(int)position.X + i, (int)position.Y + j].Block.Falling)
                            {
                                slots[(int)position.X + i, (int)position.Y + j].Block = blocks[i, j];
                            }
                        }
                    }
                }

                //Update times
                if (times[0] >= stats.FallTimeout)
                {
                    times[0] = 0;
                }
                if (times[1] >= TIME_1)
                {
                    times[1] = 0;
                }
            }
        }
Beispiel #11
0
 public CharacterDamage(Stats.Stats stats)
 {
     _stats = stats;
 }
Beispiel #12
0
        public ObjAiBase(Game game, string model, Stats.Stats stats, int collisionRadius = 40,
                         float x = 0, float y = 0, int visionRadius = 0, uint netId = 0) :
            base(game, model, stats, collisionRadius, x, y, visionRadius, netId)
        {
            _itemManager  = game.ItemManager;
            _scriptEngine = game.ScriptEngine;
            CharData      = _game.Config.ContentManager.GetCharData(Model);
            stats.LoadStats(CharData);
            if (CharData.PathfindingCollisionRadius > 0)
            {
                CollisionRadius = CharData.PathfindingCollisionRadius;
            }
            else if (collisionRadius > 0)
            {
                CollisionRadius = collisionRadius;
            }
            else
            {
                CollisionRadius = 40;
            }

            Stats.CurrentMana   = stats.ManaPoints.Total;
            Stats.CurrentHealth = stats.HealthPoints.Total;
            animationCycler     = new Random();
            maxAAAnimations     = new List <ISpellData>();
            i = 2;
            maxAAAnimations.Add(_game.Config.ContentManager.GetSpellData(model + "BasicAttack"));
            while (_game.Config.ContentManager.GetSpellData(model + "BasicAttack" + i) != null)
            {
                try
                {
                    i++;
                    maxAAAnimations.Add(_game.Config.ContentManager.GetSpellData(model + "BasicAttack" + i));
                }
                catch (ContentNotFoundException)
                {
                    Console.WriteLine("Number Of Animations - " + maxAAAnimations.Count());
                    break;
                }
                break;
            }
            if (!string.IsNullOrEmpty(model))
            {
                AaSpellData               = _game.Config.ContentManager.GetSpellData(model + "BasicAttack");
                AutoAttackDelay           = AaSpellData.CastFrame / 30.0f;
                AutoAttackProjectileSpeed = AaSpellData.MissileSpeed;
                IsMelee = CharData.IsMelee;
            }
            else
            {
                AutoAttackDelay           = 0;
                AutoAttackProjectileSpeed = 500;
                IsMelee = true;
            }

            AppliedBuffs = new IBuff[256];
            BuffGameScriptControllers = new List <BuffGameScriptController>();
            BuffsLock = new object();
            Buffs     = new Dictionary <string, IBuff>();
            IsDashing = false;
        }