/** * This method will take the players choice chosen during the Main Menu Load Game and load the appropriate PlayerState * */ public PlayerState LoadSavedState(int choice) { PlayerState ps = new PlayerState(); return ps; }
/** * This method will take the players choice chosen during the Main Menu Load Game and load the appropriate PlayerState * */ public PlayerState LoadSavedState(int choice) { PlayerState ps = new PlayerState(); XmlNodeList[] n_list = savedGameStates.ToArray(); XmlNodeList chosen_state = n_list[choice]; List<int> p_abilities = new List<int>(); // Loop over each element in the XML saved state and start populating the PlayerState with it foreach (XmlNode n in chosen_state) { /** Every item that is added to the PlayerState.cs file NEEDS to be accounted for here **/ if (n.Name.CompareTo("p_name") == 0) ps.setName(n.InnerText); if (n.Name.CompareTo("p_current_zone") == 0) { ps.setZone(Convert.ToInt32(n.InnerText)); saved_level_index = Convert.ToInt32(n.InnerText); } if (n.Name.CompareTo("p_health") == 0) ps.setHealth(Convert.ToInt32(n.InnerText)); if (n.Name.CompareTo("p_speed") == 0) ps.setSpeed(Convert.ToDouble(n.InnerText)); if (n.Name.CompareTo("p_damage") == 0) ps.setDamage(Convert.ToInt32(n.InnerText)); if (n.Name.CompareTo("abilities") == 0) { string[] a_str = n.InnerText.Split(' '); foreach (string s in a_str) { // Convert each ability to an integer and add it to the list p_abilities.Add(Convert.ToInt32(s)); } // Set the players list of available abilities to the saved abilities ps.setAbilities(p_abilities); } } // Return the fully loaded PlayerState which can be used to fill out the rest of the GameState return ps; }
public Player(SpriteSheet sprite, SpriteSheet arms, List<ProjectileProperties> projectiles, PlayState ps) : base(Int32.MaxValue) //player always has largest ID for rendering purposes { p_state = new PlayerState("TEST player"); //p_state.setSpeed(130); this.playstate = ps; _speed = runSpeed; _location = new Vector3(25, 12.5f, 50); _scale = new Vector3(25f, 25f, 25f); _pbox = new Vector3(5f, 11.0f, 5f); _cbox = new Vector3(4f, 10.0f, 4f); spinSize = 12; //?? experiment with this, TODO: change it to match the sprites size velocity = new Vector3(0, 0, 0); accel = new Vector3(0, 0, 0); kbspeed = new Vector3(70, 100, 70); jumpspeed = 250.0f; _cycleNum = 0; _frameNum = 0; _sprite = sprite; _hascbox = true; _type = 0; //type 0 is the player and only the player _existsIn2d = true; _existsIn3d = true; onGround = true; //arms this.arms = new Decoration(_location + new Vector3(0.005f, 0.0f, 0.005f), _scale, true, true, Billboarding.Yes, arms); ps.renderList.Add(this.arms); //combat things _damage = 1; spinDamage = 2; maxHealth = _health = 7; stamina = 5.0; maxStamina = 5.0; spaceDown = false; eDown = false; pDown = false; isMobile = true; Invincible = false; HasControl = true; Invincibletimer = 0.0; NoControlTimer = 0.0; fallTimer = 0.0; viewSwitchJumpTimer = 0.0; projectileTimer = 0.0; spinTimer = 0.0; lookDownTimer = -1.0; squishTimer = -1.0; lastPosOnGround = new Vector3(_location); _animDirection = 1; this.projectiles = projectiles; curProjectile = projectiles[0]; curProjectile.damage = _damage; markerList = new List<Decoration>(); Assembly assembly = Assembly.GetExecutingAssembly(); jumpSound = new AudioFile(assembly.GetManifestResourceStream("U5Designs.Resources.Sound.jump_sound.ogg")); bananaSound = new AudioFile(assembly.GetManifestResourceStream("U5Designs.Resources.Sound.banana2.ogg")); HurtSound = new AudioFile(assembly.GetManifestResourceStream("U5Designs.Resources.Sound.hurt.ogg")); HitSound = new AudioFile(assembly.GetManifestResourceStream("U5Designs.Resources.Sound.hit.ogg")); SpinSound = new AudioFile(assembly.GetManifestResourceStream("U5Designs.Resources.Sound.spin.ogg")); }