private void Load(Transform _transform) { // Physics AddComponent(new Body(this)); AddComponent(new CircleCollider(this, CollisionChanell.Player, Vector2.Zero, size / 3)); //AddComponent(new CircleCollider(this, CollisionChanell.Hitbox, Vector2.Zero, size / 2)); walkSFX = AddComponent(new Audio.AudioSource(this, Audio.SoundContainer.Instance.GetSoundEffect("MonkeyWalk"))); walkSFX.Pitch = 0.2f; hitSFX = AddComponent(new Audio.AudioSource(this, Audio.SoundContainer.Instance.GetSoundEffect("MonkeyHit"))); hitSFX.Pitch = 0.2f; idleSFX = AddComponent(new Audio.AudioSource(this, Audio.SoundContainer.Instance.GetSoundEffect("MonkeyIdle"))); idleSFX.Pitch = 0.2f; gameoverSFX = AddComponent(new Audio.AudioSource(this, Audio.SoundContainer.Instance.GetSoundEffect("GameOver"))); // Movement movement = AddComponent(new Navigation.MovementComponent(this)); PlayerState? state = Core.GameManager.Instance.playerState; Console.WriteLine("loading player, state: " + state.HasValue); Gun gun = AddComponent(new Gun(this)); if(state == null) { gun.AddAmmoClip(Gun.pistolClip.Copy()); gun.AddAmmoClip(Gun.rifleClip.Copy()); gun.AddAmmoClip(Gun.shotgunClip.Copy()); gun.AddAmmoClip(Gun.launcherClip.Copy()); gun.ChangeAmmo(typeof(PistolBullet)); } else { foreach(ClipInfo clip in state.Value.ammo) gun.AddAmmoClip(clip.Copy()); gun.ChangeAmmo(state.Value.currentAmmoType); } inputComponent = AddComponent(new Input.InputComponent(this)); // Health healthComponent = AddComponent(new Health(this)); healthComponent.MaxHealth = 200; if(state.HasValue) healthComponent.CurrentValue = state.Value.health; healthComponent.OnDamageTaken += OnDamageTaken; healthComponent.OnDepleted += OnDeath; hud = Core.GameManager.SpawnObject(new UI.PlayerHUD(this)); List<Rectangle> idle01 = new List<Rectangle>(); for(int i = 0; i < height; ++i) idle01.Add(new Rectangle(i * size, 0, size, size)); AddComponent(new Graphics.Sprite(this, "monkey", idle01)); AddComponent(new Graphics.StackAnimator(this)); //STANIE List<Rectangle> idle02 = new List<Rectangle>(); for(int i = 0; i < height; ++i) idle02.Add(new Rectangle(i * size, size, size, size)); GetComponent<Graphics.StackAnimator>().AddAnimation( new Graphics.StackAnimation("Idle", GetComponent<Graphics.Sprite>(), new List<List<Rectangle>> { idle01, idle02 }, 266, true)); //CHODZENIE List<Rectangle> walk01 = new List<Rectangle>(); for(int i = 0; i < height; ++i) idle02.Add(new Rectangle(i * size, size * 2, size, size)); List<Rectangle> walk02 = new List<Rectangle>(); for(int i = 0; i < height; ++i) walk02.Add(new Rectangle(i * size, size * 3, size, size)); GetComponent<Graphics.StackAnimator>().AddAnimation( new Graphics.StackAnimation("Walk", GetComponent<Graphics.Sprite>(), new List<List<Rectangle>> { walk01, idle01, walk02, idle01}, 216, true)); //TRZYMANIE List<Rectangle> hold01 = new List<Rectangle>(); for(int i = 0; i < height; ++i) hold01.Add(new Rectangle(i * size, size * 4, size, size)); List<Rectangle> hold02 = new List<Rectangle>(); for(int i = 0; i < height; ++i) hold02.Add(new Rectangle(i * size, size * 5, size, size)); GetComponent<Graphics.StackAnimator>().AddAnimation( new Graphics.StackAnimation("Hold", GetComponent<Graphics.Sprite>(), new List<List<Rectangle>> { hold01, hold02 }, 266, true)); //TRZYMANIE I CHODZENIE List<Rectangle> holdwalk01 = new List<Rectangle>(); for(int i = 0; i < height; ++i) holdwalk01.Add(new Rectangle(i * size, size * 6, size, size)); List<Rectangle> holdwalk02 = new List<Rectangle>(); for(int i = 0; i < height; ++i) holdwalk02.Add(new Rectangle(i * size, size * 7, size, size)); GetComponent<Graphics.StackAnimator>().AddAnimation( new Graphics.StackAnimation("HoldWalk", GetComponent<Graphics.Sprite>(), new List<List<Rectangle>> { holdwalk01, hold01, holdwalk02, hold01}, 150, true)); //UMIERANIE List<Rectangle> dead01 = new List<Rectangle>(); for(int i = 0; i < height; ++i) dead01.Add(new Rectangle(i * size, size * 8, size, size)); List<Rectangle> dead02 = new List<Rectangle>(); for(int i = 0; i < height; ++i) dead02.Add(new Rectangle(i * size, size * 9, size, size)); GetComponent<Graphics.StackAnimator>().AddAnimation( new Graphics.StackAnimation("Dead", GetComponent<Graphics.Sprite>(), new List<List<Rectangle>> { idle01, dead01, dead02 }, 298, false)); //RZUCANIE List<Rectangle> throw01 = new List<Rectangle>(); for(int i = 0; i < height; ++i) throw01.Add(new Rectangle(i * size, size * 10, size, size)); List<Rectangle> throw02 = new List<Rectangle>(); for(int i = 0; i < height; ++i) throw02.Add(new Rectangle(i * size, size * 11, size, size)); List<Rectangle> throw03 = new List<Rectangle>(); for(int i = 0; i < height; ++i) throw03.Add(new Rectangle(i * size, size * 12, size, size)); GetComponent<Graphics.StackAnimator>().AddAnimation( new Graphics.StackAnimation("Throw", GetComponent<Graphics.Sprite>(), new List<List<Rectangle>> { throw01, throw01, throw02, throw03, hold01 }, 298, false)); GetComponent<Graphics.StackAnimator>().SetAnimation("Hold"); lightOff = Graphics.EffectContainer.Instance.GetEffect("LightOff"); Audio.AudioManager.Instance.PlayerTransform = transform; HealthFx = Graphics.EffectContainer.Instance.GetEffect("HealthFX"); Graphics.ViewManager.Instance.activeEffects.Add(HealthFx); Graphics.ViewManager.Instance.activeEffects.Add(Graphics.EffectContainer.Instance.GetEffect("BloodScreen")); }