public IEnumerable <float> GetPercentageModifier(Stats.Stats stat) { if (stat == Stats.Stats.Damage) { yield return(currentWeaponConfig.GetPercentageModifier()); } }
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; }
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>(); }
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; }
public Abilities(Stats.Stats newStats) { }
public Skills(Stats.Stats newStats) { }
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); }
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; } } }
public CharacterDamage(Stats.Stats stats) { _stats = stats; }
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; }