public static Player CreatePlayer(PlayerInfo info) { var meleeWeaponSprite = new MeleeWeaponSprite( GetBitmap(info.MeleeWeaponTileMapPath), 1, 0, 5, new Size(170, 170)); var weaponSprites = new Dictionary <Type, Sprite>(); foreach (var weaponType in WeaponFramesId.Keys) { weaponSprites.Add( weaponType, new StaticSprite( GetBitmap(info.WeaponsTileMapPath), WeaponFramesId[weaponType], new Size(79, 57))); } var weapons = new List <Weapon>(); foreach (var weaponInfo in info.Weapons) { weapons.Add(AbstractWeaponFactory.CreateGun(weaponInfo)); } var position = info.Position.Copy(); var angle = info.Angle; var legs = new PlayerBodySprite(position, GetBitmap(info.ClothesTileMapPath), 1, 14, 27, new Size(64, 64)); var legsContainer = new SpriteContainer(legs, position, angle); var torsoContainer = new SpriteContainer(weaponSprites[weapons[0].GetType()], position, angle); var meleeWeapon = new MeleeWeapon(position, angle); return(new Player( info.Health, info.Armor, new RigidCircle(position, 32, false, true), legsContainer, torsoContainer, weapons, weaponSprites, meleeWeaponSprite, meleeWeapon, info.DeadBodyTileMapPath)); }
public Player(int health, int armor, RigidCircle collisionShape, SpriteContainer legsContainer, SpriteContainer torsoContainer, List <Weapon> startWeapons, Dictionary <Type, Sprite> weaponSprites, MeleeWeaponSprite meleeWeaponSprite, MeleeWeapon meleeWeapon, string deadBodyPath) : base(health, armor, collisionShape, legsContainer, torsoContainer, deadBodyPath) { MeleeWeapon = meleeWeapon; this.meleeWeaponSprite = meleeWeaponSprite; weapons = startWeapons; this.weaponSprites = weaponSprites; currentWeaponIndex = 0; ticksFromLastDash = TicksBetweenDashes + 1; dashCount = 2; }