Exemple #1
0
        public void UpdateCluckSound()
        {
            if (Utilities.GetRand(50) == 0)
            {
                float cluckVol = Utilities.GetRandBetweenP1(0.25f, 0.7f);

                (SoundEngine.Instance()).PlayFinchSoundP1((int)Audio.Enum1.kSoundEffect_ChickenCluck1 + Utilities.GetRand(2), cluckVol);
            }
        }
Exemple #2
0
 public void AddBlob()
 {
     const float kSparkleAreaWidth = 100.0f;
     float       xOffset           = Utilities.GetRandBetweenP1(0.0f, kSparkleAreaWidth);
     float       yOffset           = Utilities.GetRandBetweenP1(0.0f, kSparkleAreaWidth);
     //ParticleInfo info;
     //info.type = ParticleType.kParticle_PondBlob;
     //info.startPosition = Utilities.CGPointMake(position.x - (kSparkleAreaWidth / 2.0f) + xOffset, position.y - (kSparkleAreaWidth / 2.0f) + yOffset);
     //(ParticleSystemRoss.Instance()).AddParticleP1(info, (int) ParticleList.t_BeforePlayer);
 }
 public void Show(float multiplier)
 {
     currentWobble  = 0.0f;
     wobbleSize     = 0.18f + Utilities.GetRandBetweenP1(0.0f, 0.04f);
     wobbleSize    *= multiplier;
     wobbleSize    *= showWobbleMultiplier;
     wobbleTime     = 0.33f + Utilities.GetRandBetweenP1(0.0f, 0.1f);
     wobbleDecline  = 0.003f + (Utilities.GetRandBetweenP1(0.0f, 0.06f) / 10.0f);
     wobbleDecline *= 0.7f;
     wobbleDecline *= wobbleDeclineMultiplier;
 }
Exemple #4
0
 public void Wobble()
 {
     Zshake.ShakeInfo info = new Zshake.ShakeInfo();
     info.xSize     = 0.0f;
     info.ySize     = 1.8f;
     info.xSpeed    = 0.0f;
     info.ySpeed    = 0.0f;
     info.xPosition = 0.0f;
     info.yPosition = 0.0f;
     shake.Setup(info);
     shake.Reset();
     shake.StartP1(Utilities.GetRandBetweenP1(0.65f, 1.2f), 0.8f);
 }
        public void SetStartOfRace()
        {
            animateIndex   = (Utilities.GetRand(4));
            animateRoll    = ((float)(Utilities.GetRand(200))) / 20.0f;
            bumpTimer      = 0.0f;
            bumpOffset     = Utilities.CGPointMake(0.0f, 0.0f);
            distSinceCloud = (float)(Utilities.GetRand(100));
            if (flockAnimalType == FlockAnimalType.kFlockAnimalCow)
            {
                animMinSubTexture = (int)World.Enum3.kGTGrass_CowDown1;
                kRollAnimSpeed    = 20.0f;
                shadowOffset      = Utilities.CGPointMake(20.0f, 9.0f);
            }
            else if (flockAnimalType == FlockAnimalType.kFlockAnimalSheep)
            {
                if (((Globals.g_world.game).lBuilder).currentScene == (int)SceneType.kSceneMud)
                {
                    animMinSubTexture = (int)World.Enum2.kGTMud_FlockSheepDown1;
                }
                else
                {
                    animMinSubTexture = (int)World.Enum3.kGTGrass_CowDown1;
                }

                kRollAnimSpeed = 18.0f + Utilities.GetRandBetweenP1(0.0f, 8.0f);
//                shadowOffset = Utilities.CGPointMake(20.0f, 9.0f);
                shadowOffset = Utilities.CGPointMake(7.0f, 7.5f);
            }
            else if (flockAnimalType == FlockAnimalType.kFlockAnimalPenguin)
            {
                animMinSubTexture = 1;
                kRollAnimSpeed    = 10.0f;
                shadowOffset      = Utilities.CGPointMake(10.0f, 5.0f);
            }
            else if (flockAnimalType == FlockAnimalType.kFlockAnimalZebra)
            {
//                animMinSubTexture = (int)World.Enum2.kGTSavanna_Zebra1;
                kRollAnimSpeed = 20.0f;
                shadowOffset   = Utilities.CGPointMake(20.0f, 9.0f);
            }
            else if (flockAnimalType == FlockAnimalType.kFlockAnimalShirley)
            {
                animMinSubTexture = (int)World.Enum2.kGTMud_ShirleyDown1;
                kRollAnimSpeed    = 8.0f;
                shadowOffset      = Utilities.CGPointMake(20.0f, 9.0f);
            }
            else
            {
                Globals.Assert(false);
            }
        }
Exemple #6
0
        public void RunAway(CGPoint playerSpeed)
        {
            if (Utilities.GetRand(2) == 0)
            {
                float squawkVol = Utilities.GetRandBetweenP1(0.3f, 0.8f);
                (SoundEngine.Instance()).PlayFinchSoundP1((int)Audio.Enum1.kSoundEffect_ChickenSquawk1, squawkVol);
            }
            else
            {
                (SoundEngine.Instance()).PlayFinchSound((int)Audio.Enum1.kSoundEffect_ChickenFlapWings);
            }

            currentAnim = (short)ChickenAnimation.n_RunAway;
            this.SetState(ChickenState.e_RunningAway);
            (anim[currentAnim]).PlayLooping();
            runAwaySpeed = 1.2f + (playerSpeed.y / 5.0f);
            runAwayAcc   = 0.35f + (playerSpeed.y / 20.0f);
        }
Exemple #7
0
        public void UpdateRandomAnimalSoundCountry(int chance)
        {
            const int kNumRandomSoundsCountry = 20;
            int       r = Utilities.GetRand(chance);

            if (r == 0)
            {
                Enum1[] soundId = new Enum1[20]
                {
                    Enum1.kSoundEffect_PigOink4, Enum1.kSoundEffect_PigOink5, Enum1.kSoundEffect_PigOink6, Enum1.kSoundEffect_Baa1, Enum1.kSoundEffect_Baa2, Enum1.kSoundEffect_Baa3, Enum1.kSoundEffect_Baa4
                    , Enum1.kSoundEffect_Baa5, Enum1.kSoundEffect_Rooster, Enum1.kSoundEffect_Goat, Enum1.kSoundEffect_Horse, Enum1.kSoundEffect_ChickenCluck1, Enum1.kSoundEffect_Rooster,
                    Enum1.kSoundEffect_Goat, Enum1.kSoundEffect_Horse, Enum1.kSoundEffect_ChickenCluck1, Enum1.kSoundEffect_Rooster, Enum1.kSoundEffect_Goat, Enum1.kSoundEffect_Horse,
                    Enum1.kSoundEffect_ChickenCluck1
                };
                int   whichSound = Utilities.GetRand(kNumRandomSoundsCountry);
                float volume     = Utilities.GetRandBetweenP1(0.3f, 0.65f);
                (SoundEngine.Instance()).PlayFinchSoundP1((int)soundId[whichSound], volume);
            }
        }
Exemple #8
0
        public void StartEffect_SparkBurst(ParticleSystemRoss.EffectInfo info)
        {
            const int kNumSplashesInRing = 3;

            Particle.ParticleInfo pInfo = new Particle.ParticleInfo();
            pInfo.type       = ParticleType.kParticle_SingleSpark;
            pInfo.hasGravity = false;
            pInfo.isAnimated = false;
            pInfo.alphaStart = info.rotation;
            pInfo.alphaSpeed = 0.07f;
            float circleSize     = Constants.PI_ + Constants.HALF_PI;
            float perThing       = circleSize / ((float)kNumSplashesInRing);
            float outSpeed       = 7.2f;
            float playerSpeedInf = 1.6f;

            pInfo.scaleStart = 2.0f;
            pInfo.scaleSpeed = 0.0f;
            pInfo.isAdditive = true;
            for (int i = 0; i < kNumSplashesInRing; i++)
            {
                float angle = (0.0f - Constants.HALF_PI) - (circleSize / 2) + (perThing * ((float)i));
                angle += Utilities.GetRandBetweenP1(-0.5f, 0.5f);
                pInfo.rotationStart = -angle + (Constants.HALF_PI);
                pInfo.velocity      = Utilities.GetVectorFromAngleP1(angle, outSpeed);
                pInfo.velocity.x   += (playerSpeedInf * info.velocity.x);
                pInfo.velocity.y   += (playerSpeedInf * info.velocity.y);
                pInfo.startPosition = info.startPosition;
                Particle particle = (ParticleSystemRoss.Instance()).GetNextFreeParticleP1(ParticleList.t_WhiteStars, "splashring");
                if (particle != null)
                {
                    particle.Launch_SingleParticle(pInfo);
                    particle.SetAtlasAndSubTextureId(Globals.g_world.GetAtlas(AtlasType.kAtlas_ParticlesScene), 25);
                    particle.SetRotationScale(Globals.g_world.GetRotationScaleForShorts(44.3274f));
                    if (Globals.deviceIPad)
                    {
                        float rotScale = (Globals.g_world.GetAtlas(AtlasType.kAtlas_ParticlesScene)).GetSubTextureRotationScale(particle.subTextureId);
                        particle.SetRotationScale(rotScale);
                    }
                }
            }

            state = EffectState.e_Inactive;
        }
        public void AddToFlockP1(Flock.FlockAnimalInfo info, FlockAnimal prevAnimal)
        {
            myFlock          = info.myFlock;
            xLinePosition    = info.xLinePosition;
            position.x       = info.xLinePosition;
            position.y       = myFlock.yPositionStart;
            yUndulationTimer = info.yUndulationTimer;
            yUndulationTime  = info.yUndulationTime;
            flockAnimalType  = (FlockAnimalType)info.animalType;
            flockAnimalId    = info.flockAnimalId;
            hasMarkerForAI   = info.hasMarkerForAI;
            markerOffset     = info.markerOffset;
            if (flockAnimalType == FlockAnimalType.kFlockAnimalShirley)
            {
                undulationDistance = 20.0f;
            }
            else
            {
                undulationDistance = 40.0f;
            }

            if (flockAnimalType == FlockAnimalType.kFlockAnimalPenguin)
            {
                hasShadow = false;
            }
            else
            {
                hasShadow = true;
            }

            framesForUndulationCycle = (int)(info.yUndulationTime / Constants.kFrameRate);
            if (prevAnimal == null)
            {
                yStartPosition = myFlock.yPositionStart;
                int framesAdded = (int)(info.yUndulationTimer / Constants.kFrameRate);
                undulationStartFrame = (int)(framesAdded % framesForUndulationCycle);
                if (undulationStartFrame < 0)
                {
                    undulationStartFrame += framesForUndulationCycle;
                }
            }
            else
            {
                yStartPosition = prevAnimal.yStartPosition - info.distanceToGo;
                float distanceFromStart = myFlock.yPositionStart - yStartPosition;
                int   framesSinceStart  = (int)(distanceFromStart / myFlock.speed);
                int   framesAdded       = (int)((info.yUndulationTimer) / Constants.kFrameRate);
                int   totalNewFrames    = -framesSinceStart + framesAdded;
                undulationStartFrame = (int)(totalNewFrames % framesForUndulationCycle);
                if (undulationStartFrame < 0)
                {
                    undulationStartFrame += framesForUndulationCycle;
                }
            }

            mapObjectId = (Globals.g_world.game).AddMapObjectP1P2P3P4(TextureType.kTexture_DontAddThisMapObjectToPendingList, (int)100, (int)-300,
                                                                      ListType.e_RenderAbovePlayer, 0);
            Globals.Assert(!(Globals.g_world.game).IsMapObjectIdInvalid(mapObjectId));
            mapObject = (Globals.g_world.game).GetMapObject(mapObjectId);
            mapObject.SetType(MapObjectType.e_FlockAnimal);
            mapObject.SetSubTextureId(0);
            const float kMinScale = 0.73f;
            const float kMaxScale = 1.0f;
            float       range     = kMaxScale - kMinScale;
            float       rPlus     = Utilities.GetRandBetweenP1(0.0f, range);
            float       rThing    = kMinScale + rPlus;

            mapObject.SetScale(rThing);
            mapObject.SetIsSelfRemoving(false);
            shadowMapObjectId = -1;
            if (hasShadow)
            {
                shadowMapObjectId = (Globals.g_world.game).AddMapObjectP1P2P3P4(TextureType.kTexture_DontAddThisMapObjectToPendingList, (int)-100, (int)-300,
                                                                                ListType.e_Shadows, 0);
            }

            Globals.Assert(!(Globals.g_world.game).IsMapObjectIdInvalid(mapObjectId));
            if (hasShadow)
            {
                Globals.Assert(!(Globals.g_world.game).IsMapObjectIdInvalid(shadowMapObjectId));
                shadowMapObject = (Globals.g_world.game).GetMapObject(shadowMapObjectId);
                shadowMapObject.SetIsSelfRemoving(false);

                shadowMapObject.SetAtlas(Globals.g_world.game.gameThingsAtlas);                //
                if (((Globals.g_world.game).lBuilder).currentScene == (int)SceneType.kSceneMud)
                {
                    shadowMapObject.SetSubTextureId((int)World.Enum2.kGTMud_PlayerShadow);
                    shadowMapObject.SetAtlas(Globals.g_world.game.gameThingsAtlas);// .SetSubTextureId((int)World.Enum2.kGTMud_PlayerShadow);
                }
                else
                {
                    shadowMapObject.SetSubTextureId((int)World.Enum3.kGTGrass_PlayerShadow);
                }
            }

            float noGoRadius = 0.0f;

            if (flockAnimalType == FlockAnimalType.kFlockAnimalCow)
            {
                shadowMapObject.SetScale(1.0f);
                noGoRadius = 42.0f;
            }
            else if (flockAnimalType == FlockAnimalType.kFlockAnimalSheep)
            {
                shadowMapObject.SetScale(1.7f * rThing);
                noGoRadius = 42.0f;
            }
            else if (flockAnimalType == FlockAnimalType.kFlockAnimalPenguin)
            {
                noGoRadius = 20.0f;
            }
            else if (flockAnimalType == FlockAnimalType.kFlockAnimalZebra)
            {
                shadowMapObject.SetScale(1.5f);
                noGoRadius = 35.0f;
            }
            else if (flockAnimalType == FlockAnimalType.kFlockAnimalShirley)
            {
                shadowMapObject.SetScale(2.7f);
                noGoRadius = 70.0f;
            }
            else
            {
                Globals.Assert(false);
            }

            if (noGoZone == null)
            {
                noGoZone = new NoGoZone();
            }

            noGoZone.InitialiseP1(Utilities.CGPointMake(0, 0), noGoRadius);
            noGoZone.SetType(NoGoType.e_FlockAnimal);
            noGoZone.SetObjectId(myFlock.flockId);
            noGoZone.SetShadowObjectId(flockAnimalId);
        }
Exemple #10
0
 public void PlayBounceSound()
 {
     if ((int)type == (int)FlowerHeadType.kFlowerHead_Apple)
     {
         (SoundEngine.Instance()).PlayFinchSoundP1((int)Audio.Enum1.kSoundEffect_AppleDrop, Utilities.GetRandBetweenP1(0.5f, 0.9f));
     }
 }
Exemple #11
0
        public void AddToScene(FlowerHeadInfo info)
        {
            //Debug.Log("AddFlowerhead" + myId.ToString() + " "  + info.type.ToString());

            splattable = false;
            type       = info.type;
            switch (info.type)
            {
            case FlowerHeadType.kFlowerHead_PumpkinPiece:
                shadowSubTextureStart = (short)World.Enum2.kGTMud_GenericShadow;
                flowerSubTextureStart = (short)World.Enum2.kGTMud_PumpkinPiece;
                numFlowerAnims        = 1;
                numShadowAnims        = 1;
                rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsMud)).GetSubTextureRotationScale(flowerSubTextureStart);
                upVelocity            = ((float)(Utilities.GetRand(5))) + 8.0f;
                upVelocity           *= 1.0f;
                useGravity            = 1.5f;
                height    = 30;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 50.0f;
                if (Utilities.GetRand(2) == 0)
                {
                    splattable = true;
                }

                if (Utilities.GetRand(2) == 0)
                {
                    spinSpeed = -spinSpeed;
                }

                break;

            case FlowerHeadType.kFlowerHead_SquashPiece:
                shadowSubTextureStart = (short)World.Enum2.kGTMud_GenericShadow;
                flowerSubTextureStart = (short)World.Enum2.kGTMud_SquashPiece;
                numFlowerAnims        = 1;
                numShadowAnims        = 1;
                rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsMud)).GetSubTextureRotationScale(flowerSubTextureStart);
                upVelocity            = ((float)(Utilities.GetRand(5))) + 8.0f;
                useGravity            = 1.5f;
                height    = 30;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 50.0f;
                if (Utilities.GetRand(2) == 0)
                {
                    splattable = true;
                }

                if (Utilities.GetRand(2) == 0)
                {
                    spinSpeed = -spinSpeed;
                }

                break;

            case FlowerHeadType.kFlowerHead_CourgettePiece:
                shadowSubTextureStart = (short)World.Enum2.kGTMud_GenericShadow;
                flowerSubTextureStart = (short)World.Enum2.kGTMud_CourgettePiece;
                numFlowerAnims        = 1;
                numShadowAnims        = 1;
                rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsMud)).GetSubTextureRotationScale(flowerSubTextureStart);
                upVelocity            = ((float)(Utilities.GetRand(5))) + 8.0f;
                useGravity            = 1.5f;
                height    = 30;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 50.0f;
                if (Utilities.GetRand(2) == 0)
                {
                    splattable = true;
                }

                if (Utilities.GetRand(2) == 0)
                {
                    spinSpeed = -spinSpeed;
                }

                break;

            case FlowerHeadType.kFlowerHead_TulipBlue:
            case FlowerHeadType.kFlowerHead_TulipWhite:
            case FlowerHeadType.kFlowerHead_TulipYellow:
            case FlowerHeadType.kFlowerHead_Tulip:
                shadowSubTextureStart = (short)World.Enum3.kGTGrass_FlowerShadow1;
                if (((Globals.g_world.game).lBuilder).currentScene == (int)SceneType.kSceneGrass)
                {
                    int startPetal = 0;
                    if ((int)info.type == (int)FlowerHeadType.kFlowerHead_Tulip)
                    {
                        startPetal = (int)World.Enum3.kGTGrass_TulipsRed_Petal1;
                    }
                    else if ((int)info.type == (int)FlowerHeadType.kFlowerHead_TulipWhite)
                    {
                        startPetal = (int)World.Enum3.kGTGrass_TulipWhitePetal1;
                    }
                    else if ((int)info.type == (int)FlowerHeadType.kFlowerHead_TulipBlue)
                    {
                        startPetal = (int)World.Enum3.kGTGrass_TulipBluePetal1;
                    }
                    else if ((int)info.type == (int)FlowerHeadType.kFlowerHead_TulipYellow)
                    {
                        startPetal = (int)World.Enum3.kGTGrass_TulipYellowPetal1;
                    }

                    flowerSubTextureStart = (short)(startPetal + Utilities.GetRand(2));
                    rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsGrass)).GetSubTextureRotationScale(flowerSubTextureStart);
                }
                else
                {
                    shadowSubTextureStart = (short)World.Enum2.kGTMud_TulipPetalShadow;
                    int startPetal = 0;
                    if ((int)info.type == (int)FlowerHeadType.kFlowerHead_Tulip)
                    {
                        startPetal = (int)World.Enum2.kGTMud_TulipRedPetal1;
                    }
                    else if ((int)info.type == (int)FlowerHeadType.kFlowerHead_TulipWhite)
                    {
                        startPetal = (int)World.Enum2.kGTMud_TulipWhitePetal1;
                    }
                    else if ((int)info.type == (int)FlowerHeadType.kFlowerHead_TulipBlue)
                    {
                        startPetal = (int)World.Enum2.kGTMud_TulipBluePetal1;
                    }
                    else if ((int)info.type == (int)FlowerHeadType.kFlowerHead_TulipYellow)
                    {
                        startPetal = (int)World.Enum2.kGTMud_TulipYellowPetal1;
                    }

                    flowerSubTextureStart = (short)(startPetal + Utilities.GetRand(2));
                    rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsMud)).GetSubTextureRotationScale(flowerSubTextureStart);
                }

                numFlowerAnims = 1;
                numShadowAnims = 1;
                upVelocity     = ((float)(Utilities.GetRand(5))) + 8.0f;
                useGravity     = 0.7f;
                height         = 30;
                spinSpeed      = ((float)(5 + Utilities.GetRand(15))) / 25.0f;
                if (Utilities.GetRand(2) == 0)
                {
                    spinSpeed = -spinSpeed;
                }

                break;

            case FlowerHeadType.kFlowerHead_BushFragment:
                shadowSubTextureStart = (short)World.Enum3.kGTGrass_GenericShadow;
                flowerSubTextureStart = (short)((int)World.Enum3.kGTGrass_BushFragment1 + Utilities.GetRand(2));
                numFlowerAnims        = 1;
                numShadowAnims        = 1;
                rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsGrass)).GetSubTextureRotationScale(flowerSubTextureStart);
                upVelocity            = ((float)(Utilities.GetRand(5))) + 8.0f;
                useGravity            = 1.2f;
                height    = 30;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 50.0f;
                if (Utilities.GetRand(2) == 0)
                {
                    spinSpeed = -spinSpeed;
                }

                break;

            case FlowerHeadType.kFlowerHead_Daffodil:
                shadowSubTextureStart = (short)World.Enum3.kGTGrass_FlowerShadow1;
                flowerSubTextureStart = (short)World.Enum3.kGTGrass_FlowerHead1;
                numFlowerAnims        = 1;
                numShadowAnims        = 1;
                rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsGrass)).GetSubTextureRotationScale((int)World.Enum3.kGTGrass_FlowerHead1);
                upVelocity            = ((float)(Utilities.GetRand(5))) + 8.0f;
                useGravity            = 1.2f;
                height    = 30;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 50.0f;
                if (Utilities.GetRand(2) == 0)
                {
                    spinSpeed = -spinSpeed;
                }

                break;

            case FlowerHeadType.kFlowerHead_Sunflower:
                shadowSubTextureStart = (short)World.Enum3.kGTGrass_FlowerShadow1;
                flowerSubTextureStart = (short)World.Enum3.kGTGrass_FlowerHead1;
                numFlowerAnims        = 1;
                numShadowAnims        = 7;
                rotationScale         = Globals.g_world.GetRotationScaleForShorts(22.6274f);
                upVelocity            = ((float)(Utilities.GetRand(5))) + 5.0f;
                useGravity            = 0.5f;
                height    = 30;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 100;
                break;

            case FlowerHeadType.kFlowerHead_Lilac:
                shadowSubTextureStart = 3;
                flowerSubTextureStart = 20;
                numFlowerAnims        = 8;
                numShadowAnims        = 1;
                rotationScale         = Globals.g_world.GetRotationScaleForShorts(11.3137f);
                upVelocity            = ((float)(Utilities.GetRand(3))) + 2.5f;
                useGravity            = 0.15f;
                height    = 10;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 100;
                alpha     = 1.0f;
                break;

            case FlowerHeadType.kFlowerHead_Pink:
                shadowSubTextureStart = 3;
                flowerSubTextureStart = 34;
                numFlowerAnims        = 14;
                numShadowAnims        = 1;
                rotationScale         = Globals.g_world.GetRotationScaleForShorts(11.3137f);
                upVelocity            = ((float)(Utilities.GetRand(2))) + 2.0f;
                useGravity            = 0.1f;
                height    = 10;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 250.0f;
                alpha     = 1.0f;
                break;

            case FlowerHeadType.kFlowerHead_BushExplosion:
                shadowSubTextureStart = 2;
                flowerSubTextureStart = 28;
                numFlowerAnims        = 4;
                numShadowAnims        = 1;
                rotationScale         = Globals.g_world.GetRotationScaleForShorts(45.3137f);
                upVelocity            = 10.0f;
                useGravity            = 0.7f;
                height    = 10;
                alpha     = 1.0f;
                scale     = 1.0f;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 100;
                break;

            case FlowerHeadType.kFlowerHead_Bucket:
                shadowSubTextureStart = 2;
                flowerSubTextureStart = 56;
                numFlowerAnims        = 7;
                numShadowAnims        = 1;
                rotationScale         = Globals.g_world.GetRotationScaleForShorts(45.3137f);
                upVelocity            = 10.0f;
                useGravity            = 0.7f;
                height    = 10;
                alpha     = 1.0f;
                scale     = 1.0f;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 100;
                break;

            case FlowerHeadType.kFlowerHead_Bollard:
            case FlowerHeadType.kFlowerHead_Cauliflower:
                if (((Globals.g_world.game).lBuilder).currentScene == (int)SceneType.kSceneGrass)
                {
                    flowerSubTextureStart = (short)World.Enum3.kGTGrass_Bollard;
                    shadowSubTextureStart = (short)World.Enum3.kGTGrass_GenericShadow;
                }
                else
                {
                    if ((int)type == (int)FlowerHeadType.kFlowerHead_Cauliflower)
                    {
                        flowerSubTextureStart = (short)World.Enum2.kGTMud_CauliFlower;
                    }
                    else
                    {
                        flowerSubTextureStart = (short)World.Enum2.kGTMud_TrafficCone;
                    }

                    shadowSubTextureStart = (short)World.Enum2.kGTMud_GenericShadow;
                }

                numFlowerAnims = 1;
                numShadowAnims = 1;
                rotationScale  = Globals.g_world.GetRotationScaleForShorts(45.3137f);
                upVelocity     = 10.0f;
                useGravity     = 0.7f;
                height         = 10;
                alpha          = 1.0f;
                scale          = 1.0f;
                spinSpeed      = 100000.0f;
                break;

            case FlowerHeadType.kFlowerHead_Apple:
                shadowSubTextureStart = (short)World.Enum3.kGTGrass_AppleShadow;
                flowerSubTextureStart = (short)World.Enum3.kGTGrass_Apple1;
                numFlowerAnims        = 1;
                numShadowAnims        = 1;
                rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsGrass)).GetSubTextureRotationScale((int)World.Enum3.kGTGrass_Apple1);
                upVelocity            = 6.0f;
                upVelocity           += Utilities.GetRandBetweenP1(0.0f, 12.0f);
                useGravity            = 2.5f;
                height    = 480;
                alpha     = 1.0f;
                scale     = 1.0f;
                spinSpeed = 100000.0f;
                break;

            case FlowerHeadType.kFlowerHead_GnomePiece:
                shadowSubTextureStart = (short)World.Enum3.kGTGrass_AppleShadow;
                flowerSubTextureStart = (short)World.Enum3.kGTGrass_GnomePieceRed1;
                if (Utilities.GetRand(2) == 0)
                {
                    flowerSubTextureStart = (short)World.Enum3.kGTGrass_GnomePieceBlack1;
                }

                numFlowerAnims = 5;
                numShadowAnims = 1;
                rotationScale  = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsGrass)).GetSubTextureRotationScale((int)World.Enum3.kGTGrass_Apple1);
                upVelocity     = 6.0f;
                upVelocity    += Utilities.GetRandBetweenP1(0.0f, 12.0f);
                useGravity     = 2.5f;
                height         = Utilities.GetRandBetweenP1(60.0f, 160.0f);
                alpha          = 1.0f;
                scale          = 1.0f;
                spinSpeed      = Utilities.GetRandBetweenP1(0.04f, 0.08f);
                break;

            case FlowerHeadType.kFlowerHead_Welly:
                shadowSubTextureStart = (short)World.Enum2.kGTMud_WellyShadow;
                flowerSubTextureStart = (short)World.Enum2.kGTMud_Welly;
                numFlowerAnims        = 1;
                numShadowAnims        = 1;
                rotationScale         = (Globals.g_world.GetAtlas(AtlasType.kAtlas_GameThingsMud)).GetSubTextureRotationScale((int)World.Enum2.kGTMud_Welly);
                upVelocity            = 10.0f;
                useGravity            = 0.7f;
                height    = 10;
                alpha     = 1.0f;
                scale     = 1.0f;
                spinSpeed = ((float)(5 + Utilities.GetRand(15))) / 100;
                if (Utilities.GetRand(2) == 0)
                {
                    spinSpeed = -spinSpeed;
                }

                break;

            case FlowerHeadType.kFlowerHead_HayBurst:
            case FlowerHeadType.kFlowerHead_HayBurstStack:
            case FlowerHeadType.kFlowerHead_HayBurstCloud:
                shadowSubTextureStart = 2;
                flowerSubTextureStart = 3;
                numFlowerAnims        = 4;
                numShadowAnims        = 1;
                rotationScale         = Globals.g_world.GetRotationScaleForShorts(45.3137f);
                upVelocity            = 10.0f;
                useGravity            = 0.7f;
                height    = 10;
                alpha     = 1.0f;
                scale     = 1.0f;
                spinSpeed = ((float)(5 + Utilities.GetRand(8))) / 100;
                break;

            default:
                Globals.Assert(false);
                break;
            }

            animTimer   = 0.0f;
            currentAnim = 0;
            if ((int)type == (int)FlowerHeadType.kFlowerHead_GnomePiece)
            {
                currentAnim = (short)Utilities.GetRand(numFlowerAnims);
            }

            currentShadowAnim = 0;
            position          = info.position;
            velocity          = info.velocity;
            this.SetState(FlowerHeadState.e_Active);
            numBounces = 0;
            rotation   = info.rotation;
            if (info.addUnderPlayer)
            {
                mapObjectId = (short)(Globals.g_world.game).AddMapObjectToFrontP1P2P3(0, (int)position.x, (int)position.y, ListType.e_RenderUnderPlayer);
            }
            else
            {
                if ((int)type == (int)FlowerHeadType.kFlowerHead_Apple)
                {
                    mapObjectId = (short)(Globals.g_world.game).AddMapObjectToFrontP1P2P3(0, (int)position.x, (int)position.y, ListType.e_RenderTrees);
                }
                else
                {
                    mapObjectId = (short)(Globals.g_world.game).AddMapObjectToFrontP1P2P3(0, (int)position.x, (int)position.y, ListType.e_RenderAbovePlayer);
                }
            }

            if (((int)type != (int)FlowerHeadType.kFlowerHead_HayBurstStack) && ((int)type != (int)FlowerHeadType.kFlowerHead_HayBurstCloud))
            {
                shadowMapObjectId = (short)(Globals.g_world.game).AddMapObjectP1P2P3(0, (int)position.x, (int)position.y, ListType.e_Shadows);
            }

            if ((mapObjectId == -1) || (shadowMapObjectId == -1))
            {
                this.SetState(FlowerHeadState.e_Inactive);

                Debug.Log("NO DICE");

                return;
            }



            ((Globals.g_world.game).GetMapObject(mapObjectId)).SetAtlas(Globals.g_world.game.gameThingsAtlas);
            ((Globals.g_world.game).GetMapObject(mapObjectId)).SetType(MapObjectType.e_FlowerHead);
            ((Globals.g_world.game).GetMapObject(mapObjectId)).SetObjectId(myId);
            ((Globals.g_world.game).GetMapObject(mapObjectId)).SetRotation(rotation);
            ((Globals.g_world.game).GetMapObject(mapObjectId)).SetRotationScale(rotationScale);
            ((Globals.g_world.game).GetMapObject(mapObjectId)).SetHeight(height);
            ((Globals.g_world.game).GetMapObject(mapObjectId)).SetHasBeenDisplayed();
            if (((int)type == (int)FlowerHeadType.kFlowerHead_Lilac) || ((int)type == (int)FlowerHeadType.kFlowerHead_Pink))
            {
                ((Globals.g_world.game).GetMapObject(mapObjectId)).SetAlpha(0.7f);
            }

            ((Globals.g_world.game).GetMapObject(mapObjectId)).SetSubTextureId(flowerSubTextureStart + currentAnim);
            if (((int)type != (int)FlowerHeadType.kFlowerHead_HayBurstStack) && ((int)type != (int)FlowerHeadType.kFlowerHead_HayBurstCloud))
            {
                ((Globals.g_world.game).GetMapObject(shadowMapObjectId)).SetAtlas(Globals.g_world.game.gameThingsAtlas);
                ((Globals.g_world.game).GetMapObject(shadowMapObjectId)).SetSubTextureId(shadowSubTextureStart + currentShadowAnim);
                if ((int)type == (int)FlowerHeadType.kFlowerHead_Apple)
                {
                    ((Globals.g_world.game).GetMapObject(shadowMapObjectId)).SetRotation(-0.65f);
                }
                else
                {
                    ((Globals.g_world.game).GetMapObject(shadowMapObjectId)).SetRotation(rotation);
                }

                ((Globals.g_world.game).GetMapObject(shadowMapObjectId)).SetRotationScale(rotationScale);

                float trueRotScale = Globals.g_world.game.gameThingsAtlas.GetSubTextureRotationScale(((Globals.g_world.game).GetMapObject(shadowMapObjectId)).subTextureId);

                ((Globals.g_world.game).GetMapObject(shadowMapObjectId)).SetScale(rotationScale / trueRotScale);
            }
        }
Exemple #12
0
 public void Show()
 {
     popped    = false;
     xPosition = Utilities.GetRandBetweenP1(0.0f, Constants.PI_);
     yPosition = Utilities.GetRandBetweenP1(0.0f, Constants.PI_);
 }
Exemple #13
0
 public void SetBlinkTime()
 {
     timeToNextBlink = Utilities.GetRandBetweenP1(0.1f, 0.2f);
 }
Exemple #14
0
 public void SetTimeToNextBlink()
 {
     timeToNextBlink = Utilities.GetRandBetweenP1(0.4f, 1.8f);
 }