//-----------------------------------------------------------------------------
        // Overridden Methods
        //-----------------------------------------------------------------------------
        public override void OnBegin(MonsterState previousState)
        {
            monster.IsPassable = true;

            if (galeEffect != null) {
                monster.SetPositionByCenter(galeEffect.Position);
                galeEffect.DestroyAndTransform(monster);
                galeEffect = null;
            }

            timer			= 0;
            isRising		= false;
            galeZPosition	= monster.ZPosition;
            monsterPosition	= monster.Position;

            monster.Physics.Velocity = Vector2F.Zero;
            monster.Graphics.PauseAnimation();
            monster.DisablePhysics();

            galeAnimationPlayer.Play(GameData.ANIM_EFFECT_SEED_GALE);
        }
Beispiel #2
0
 public bool EnterGale(EffectGale gale)
 {
     if (isGaleable && ((state is MonsterNormalState) || (state is MonsterStunState))) {
         BeginState(new MonsterGaleState(gale));
         return true;
     }
     return false;
 }
 //-----------------------------------------------------------------------------
 // Constructor
 //-----------------------------------------------------------------------------
 public MonsterGaleState(EffectGale galeEffect)
 {
     this.galeEffect = galeEffect;
     galeAnimationPlayer = new AnimationPlayer();
 }
        private Entity CreateEffect(SeedType seedType, bool satchelEffect, Vector2F effectPosition)
        {
            Entity effectEntity = null;

            // Create the seed's effect.
            if (seedType == SeedType.Ember) {
                effectEntity = new Fire();
                AudioSystem.PlaySound(GameData.SOUND_FIRE);
            }
            else if (seedType == SeedType.Scent) {
                if (satchelEffect) {
                    effectEntity = new ScentPod();
                    AudioSystem.PlaySound(GameData.SOUND_SCENT_SEED_POD);
                }
                else {
                    effectEntity = new Effect(GameData.ANIM_EFFECT_SEED_SCENT, DepthLayer.EffectSeed);
                    AudioSystem.PlaySound(GameData.SOUND_SCENT_SEED);
                }
            }
            else if (seedType == SeedType.Mystery) {
                effectEntity = new Effect(GameData.ANIM_EFFECT_SEED_MYSTERY, DepthLayer.EffectSeed);
                AudioSystem.PlaySound(GameData.SOUND_MYSTERY_SEED);
            }
            else if (seedType == SeedType.Pegasus) {
                effectEntity = new Effect(GameData.ANIM_EFFECT_SEED_PEGASUS, DepthLayer.EffectSeed);
                AudioSystem.PlaySound(GameData.SOUND_FIRE);
            }
            else if (seedType == SeedType.Gale) {
                effectEntity = new EffectGale(satchelEffect);
                AudioSystem.PlaySound(GameData.SOUND_GALE_SEED);
            }

            RoomControl.SpawnEntity(effectEntity, effectPosition);
            return effectEntity;
        }