public EggEntity(LizardEggMaterial material = LizardEggMaterial.LizardEgg)
        {
            SetModelInstance(AssetLocator.GameLayer, material.Model(), material.Material());
            SetPhysicsShape(
                AssetLocator.LizardEggPhysicsShape,
                Vector3.ZERO,
                GameplayConstants.EGG_MASS,
                disablePerformanceDeactivation: true,
                restitution: GameplayConstants.EGG_RESTITUTION,
                linearDamping: GameplayConstants.EGG_DAMPING_LINEAR,
                angularDamping: GameplayConstants.EGG_DAMPING_ANGULAR,
                friction: GameplayConstants.EGG_FRICTION,
                rollingFriction: GameplayConstants.EGG_FRICTION_ROLLING
                );
            EnableContinuousCollisionDetection(GameplayConstants.MIN_SPEED_FOR_EGG_CCD, GameplayConstants.EGG_COLLISION_RADIUS * 0.01f);

            AssetLocator.MainGeometryPass._EGGHACK_MH = material.Model();

            eggIllumination = new Light(Vector3.ZERO, GameplayConstants.EGG_ILLUMINATION_RADIUS, material.CameraIlluminationColor());
            AssetLocator.LightPass.AddLight(eggIllumination);

            lastPositions    = new Vector3[(int)(TRUE_VELOCITY_CALCULATION_WINDOW_SIZE_SECS / (1f / (EntityModule.TickRateHz ?? 300f)))];
            elapsedTimes     = new float[lastPositions.Length];
            nextPositionSlot = 0;

            EntityModule.PostTick += PostTick;
            CollisionDetected     += ColDet;
        }
Example #2
0
        public static Vector3 CameraIlluminationColor(this LizardEggMaterial extended)
        {
            switch (extended)
            {
            case LizardEggMaterial.ScalesBall: return(new Vector3(0.6f, 1f, 0.6f) * 1.0f);

            case LizardEggMaterial.DiamondBall: return(new Vector3(1f, 1f, 0.6f) * 1.3f);

            case LizardEggMaterial.Melon: return(new Vector3(0.5f, 1f, 0.0f) * 2.0f);

            case LizardEggMaterial.Pumpkin: return(new Vector3(1.0f, 0.5f, 0.0f) * 1.0f);

            case LizardEggMaterial.Marble: return(new Vector3(0.5f, 0.0f, 1.0f) * 1.3f);

            case LizardEggMaterial.BilliardBall: return(new Vector3(0.6f, 0.6f, 1.0f) * 1.3f);

            case LizardEggMaterial.SoccerballOne: return(new Vector3(1f, 1f, 1f) * 2.0f);

            case LizardEggMaterial.PaintedWoodBall: return(new Vector3(1.0f, 0.4f, 0.0f) * 1.0f);

            case LizardEggMaterial.TennisBall: return(new Vector3(1.0f, 0.0f, 1.0f) * 0.8f);

            case LizardEggMaterial.SoccerballTwo: return(new Vector3(0.0f, 1.0f, 0.0f) * 4.0f);

            case LizardEggMaterial.RingBall: return(new Vector3(1.0f, 0.0f, 1.0f) * 1.5f);

            case LizardEggMaterial.SpiralBall: return(new Vector3(1.0f, 0.65f, 0.0f) * 1.2f);

            case LizardEggMaterial.CheeseBall: return(new Vector3(1.0f, 1.0f, 0.0f) * 2.0f);

            case LizardEggMaterial.BrickBall: return(new Vector3(1f, 1f, 1f) * 1.0f);

            case LizardEggMaterial.RopeBall: return(new Vector3(0.5f, 0.0f, 0.0f) * 1.0f);

            case LizardEggMaterial.EmissiveBall: return(new Vector3(0.3f, 0.5f, 1.0f) * 4.0f);

            case LizardEggMaterial.Snowball: return(new Vector3(1f, 1f, 1f) * 2.5f);

            case LizardEggMaterial.CardboardBall: return(new Vector3(0.4f, 0.1f, 0.1f) * 2.0f);

            case LizardEggMaterial.CouchBall: return(new Vector3(0.5f, 0.0f, 0.0f) * 1.2f);

            case LizardEggMaterial.LavaBall: return(new Vector3(1.0f, 0.0f, 0.0f) * 4.0f);

            case LizardEggMaterial.WireFrame: return(new Vector3(1.0f, 1.0f, 0.0f) * 4.0f);

            default: return(new Vector3(0.6f, 1f, 0.6f) * 0.8f);
            }
        }
Example #3
0
        public static string Title(this LizardEggMaterial extended)
        {
            switch (extended)
            {
            case LizardEggMaterial.ScalesBall: return("Gecko Egg");

            case LizardEggMaterial.DiamondBall: return("Skink Egg");

            case LizardEggMaterial.Melon: return("Fruity");

            case LizardEggMaterial.Pumpkin: return("Spooky");

            case LizardEggMaterial.Marble: return("Miss Marble");

            case LizardEggMaterial.BilliardBall: return("Right On Cue");

            case LizardEggMaterial.SoccerballOne: return("Goal!");

            case LizardEggMaterial.PaintedWoodBall: return("Strike!");

            case LizardEggMaterial.TennisBall: return("Game, Set and Match");

            case LizardEggMaterial.SoccerballTwo: return("Radioactive Striker");

            case LizardEggMaterial.RingBall: return("Springy");

            case LizardEggMaterial.SpiralBall: return("Rainbow Roller");

            case LizardEggMaterial.CheeseBall: return("Cheesy Premise");

            case LizardEggMaterial.BrickBall: return("Solid Foundations");

            case LizardEggMaterial.RopeBall: return("Ropey Old Thing");

            case LizardEggMaterial.EmissiveBall: return("Neon Dreams");

            case LizardEggMaterial.Snowball: return("Don't Throw It!");

            case LizardEggMaterial.CardboardBall: return("Don't Get Wet");

            case LizardEggMaterial.CouchBall: return("Luxury Lizard Egg");

            case LizardEggMaterial.LavaBall: return("Too Hot To Handle");

            case LizardEggMaterial.WireFrame: return("Back to Basics");

            default: return("Lizard Egg");
            }
        }
Example #4
0
        public static int GoldenEggCost(this LizardEggMaterial extended)
        {
            switch (extended)
            {
            case LizardEggMaterial.ScalesBall: return(5);

            case LizardEggMaterial.DiamondBall: return(10);

            case LizardEggMaterial.Melon: return(15);

            case LizardEggMaterial.Pumpkin: return(20);

            case LizardEggMaterial.Marble: return(25);

            case LizardEggMaterial.BilliardBall: return(30);

            case LizardEggMaterial.SoccerballOne: return(35);

            case LizardEggMaterial.PaintedWoodBall: return(40);

            case LizardEggMaterial.TennisBall: return(45);

            case LizardEggMaterial.SoccerballTwo: return(50);

            case LizardEggMaterial.RingBall: return(55);

            case LizardEggMaterial.SpiralBall: return(60);

            case LizardEggMaterial.CheeseBall: return(65);

            case LizardEggMaterial.BrickBall: return(70);

            case LizardEggMaterial.RopeBall: return(75);

            case LizardEggMaterial.EmissiveBall: return(80);

            case LizardEggMaterial.Snowball: return(85);

            case LizardEggMaterial.CardboardBall: return(90);

            case LizardEggMaterial.CouchBall: return(95);

            case LizardEggMaterial.LavaBall: return(100);

            case LizardEggMaterial.WireFrame: return(105);

            default: return(0);
            }
        }
Example #5
0
 public static bool EggMaterialIsUnlocked(LizardEggMaterial mat)
 {
     lock (staticMutationLock) {
         return(totalGoldenEggs >= mat.GoldenEggCost());
     }
 }
Example #6
0
 public static ModelHandle Model(this LizardEggMaterial extended)
 {
     return(AssetLocator.LizardEggModels[(int)extended]);
 }
Example #7
0
 public static Material Material(this LizardEggMaterial extended)
 {
     return(AssetLocator.LizardEggMaterials[(int)extended]);
 }