Changeset 3039 for 2012/24


Ignore:
Timestamp:
2012-06-14 15:14:12 (7 years ago)
Author:
jaollipa
Message:

Talletus.

Location:
2012/24/JaakkoL/Crisis Fire
Files:
4 added
12 edited

Legend:

Unmodified
Added
Removed
  • 2012/24/JaakkoL/Crisis Fire/FysiikkaPeli1/FysiikkaPeli1/Crisis Fire.csproj.Debug.cachefile

    r3010 r3039  
    1 Content\FieldFromTilemap.xnb 
    2 Content\FieldFromTilemap.txt 
     1Content\FieldFromTilemapNormal.xnb 
     2Content\FieldFromTilemapNormal.txt 
  • 2012/24/JaakkoL/Crisis Fire/FysiikkaPeli1/FysiikkaPeli1/Peli.cs

    r3010 r3039  
    1515        : base(height, width) 
    1616    { 
     17        CanRotate = false; 
    1718    } 
    1819} 
     
    2526        : base(height, width) 
    2627    { 
     28        IgnoresCollisionResponse = true; 
     29        IgnoresGravity = true; 
     30        CanRotate = false; 
     31    } 
     32} 
     33 
     34class Power : PhysicsObject 
     35{ 
     36    public int PowerValue; 
     37    public int ScoreValue; 
     38 
     39    public Power(double height, double width) 
     40        : base(height, width) 
     41    { 
     42        IgnoresGravity = false; 
     43        IgnoresCollisionResponse = true; 
     44        CanRotate = false; 
    2745    } 
    2846} 
     
    3149{ 
    3250    Vector VelocityUp = new Vector(0.0, 500.0); 
    33     Vector FocusedVelocityUp = new Vector(0.0, 250.0); 
    3451    Vector VelocityDown = new Vector(0.0, -500.0); 
    35     Vector FocusedVelocityDown = new Vector(0.0, -250.0); 
    3652    Vector VelocityLeft = new Vector(-500.0, 0.0); 
    37     Vector FocusedVelocityLeft = new Vector(-250.0, 0.0); 
    3853    Vector VelocityRight = new Vector(500.0, 0.0); 
    39     Vector FocusedVelocityRight = new Vector(250.0, 0.0); 
    4054    PhysicsObject Player; 
    4155    Enemy SmallEnemy; 
     
    4761    IntMeter PowerGauge; 
    4862    IntMeter ScoreGauge; 
     63    Timer PrimaryROF; 
     64    Timer SecondaryROF; 
     65    Timer TertiaryROF; 
     66    Timer LaserROF; 
     67    Timer PowerGoesCrazy; 
     68    ScoreList Scoreboard = new ScoreList(10, false, 2500); 
    4969 
    5070    public override void Begin() 
    5171    { 
    52         Field(); 
     72        if (DataStorage.Exists("Scoreboard.xml")) 
     73            Scoreboard = DataStorage.Load<ScoreList>(Scoreboard, "Scoreboard.xml"); 
     74 
     75        FieldN(); 
    5376        SetControls(); 
    5477        CreatePowerGauge(); 
     
    5679    } 
    5780 
    58     void Field() 
    59     { 
    60         TileMap LevelSpawns = TileMap.FromLevelAsset("FieldFromTilemap"); 
     81    void FieldN() 
     82    { 
     83        TileMap LevelSpawns = TileMap.FromLevelAsset("FieldFromTilemapNormal"); 
    6184        Level.BackgroundColor = Color.DarkGray; 
    6285 
     
    7497        Camera.FollowedObject = Player; 
    7598 
    76         Gravity = new Vector(-400.0, 0.0); 
    77         // Assigns the spawn methods to the game's tilemap and adds constant gravity (which only affects enemies) 
     99        Gravity = new Vector(-320.0, 0.0); 
     100        // Assigns the spawn methods to the normal mode's tilemap and adds constant gravity (which only affects enemies) 
     101        // Modify the gravity constant to modify difficulty, as enemies move faster the stronger the gravitational pull is 
    78102    } 
    79103 
    80104    void SpawnPlayer(Vector PPosition, double height, double width) 
    81105    { 
    82         height = 10.0; 
    83         width = 10.0; 
     106        height = 50.0; 
     107        width = 50.0; 
    84108        Player = new PhysicsObject(height, width); 
    85109        double massP1 = 10.0; 
     
    88112        Player.LinearDamping = 0.85; 
    89113        Player.IgnoresGravity = true; 
     114        Player.CanRotate = false; 
    90115        Player.Position = PPosition; 
    91116        Player.Shape = Shape.Circle; 
    92         Player.Color = Color.Red; 
     117        Player.Color = Color.DarkRed; 
    93118        Player.Tag = "P1"; 
    94119        AddCollisionHandler(Player, "KB", KillBorderCollision); 
     
    111136    void KillBorderCollision(IPhysicsObject Player, IPhysicsObject KillBorder) 
    112137    { 
    113         PowerGauge.Value = RandomGen.NextInt(0, 127); 
     138        PowerGoesCrazy = new Timer(); 
     139        PowerGoesCrazy.Interval = 0.1; 
     140        PowerGoesCrazy.Timeout += delegate { GameOverGaugeValue(); }; 
     141        PowerGoesCrazy.Start(); 
    114142        Player.Destroy(); 
    115143        MessageDisplay.Add("The force field vaporized you."); 
     
    117145        Timer.SingleShot(6.0, Exit); 
    118146        // What happens if the player hits the Kill Border 
     147    } 
     148 
     149    void GameOverGaugeValue() 
     150    { 
     151        PowerGauge.Value = RandomGen.NextInt(0, 127); 
    119152    } 
    120153 
     
    160193        SmallEnemy.Color = Color.Green; 
    161194        SmallEnemy.Restitution = 0.8; 
     195        SmallEnemy.Mass = 10; 
    162196        SmallEnemy.ScoreValue = 40; 
    163197        SmallEnemy.HP = 100; 
     
    167201        Add(SmallEnemy); 
    168202        // The smallest enemy type 
     203 
     204        SmallEnemy.Destroyed += delegate { SpawnSmallPower(SEPosition); }; 
    169205    } 
    170206 
     
    178214        Enemy.Color = Color.Green; 
    179215        Enemy.Restitution = 0.5; 
     216        Enemy.Mass = 15; 
    180217        Enemy.LinearDamping = 0.95; 
    181218        Enemy.ScoreValue = 200; 
     
    185222        Add(Enemy); 
    186223        // The medium enemy type 
     224 
     225        Enemy.Destroyed += delegate { SpawnPower(EPosition); }; 
    187226    } 
    188227 
     
    196235        LargeEnemy.Color = Color.Green; 
    197236        LargeEnemy.Restitution = 0.35; 
     237        LargeEnemy.Mass = 25; 
    198238        LargeEnemy.LinearDamping = 0.95; 
    199239        LargeEnemy.ScoreValue = 500; 
     
    203243        Add(LargeEnemy); 
    204244        // The large enemy type 
     245         
     246        LargeEnemy.Destroyed += delegate { SpawnLargePower(LEPosition); }; 
    205247    } 
    206248 
    207249    void SpawnBoss(Vector BPosition, double width, double height) 
    208250    { 
    209         height = 800.0; 
    210         width = 500.0; 
     251        width = 800.0; 
     252        height = 500.0; 
    211253        Boss = new Enemy(width, height); 
    212254        Boss.Position = BPosition; 
     
    214256        Boss.Color = Color.DarkGreen; 
    215257        Boss.Restitution = 0.1; 
     258        Boss.Mass = 9001; 
    216259        Boss.LinearDamping = 0.95; 
    217260        Boss.ScoreValue = 3000; 
    218         Boss.HP = 5000; 
     261        Boss.HP = 5555; 
    219262        Boss.Tag = "Enemy"; 
    220263        AddCollisionHandler(Boss, "P1", PlayerDestruction); 
    221264        Add(Boss); 
    222265        // The boss. Obviously the larget enemy type 
     266 
     267        Boss.Destroyed += delegate { ScoreboardInit(); }; 
    223268    } 
    224269 
     
    229274        if (Collider.Tag.ToString() == "Enemy") 
    230275        { 
    231             PowerGauge.Value = RandomGen.NextInt(0, 127); 
     276            PowerGoesCrazy = new Timer(); 
     277            PowerGoesCrazy.Interval = 0.1; 
     278            PowerGoesCrazy.Timeout += delegate { GameOverGaugeValue(); }; 
    232279            Player.Destroy(); 
    233280            MessageDisplay.Add("You have died."); 
     
    249296        ControllerOne.Listen(Button.DPadRight, ButtonState.Released, SetVelocity, null, Player, Vector.Zero); 
    250297        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, null); 
    251         ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, FirePrimary, null, Player, 10.0, 2.5, Shape.Rectangle); 
    252         ControllerOne.Listen(Button.LeftTrigger, ButtonState.Pressed, FireSecondary, null, Player, 25.0, 10.0, Shape.Diamond); 
     298        ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, PrimaryRate, null); 
     299        ControllerOne.Listen(Button.RightTrigger, ButtonState.Released, PrimaryRateStop, null); 
     300        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Pressed, SecondaryRate, null); 
     301        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Released, SecondaryRateStop, null); 
     302        ControllerOne.Listen(Button.RightShoulder, ButtonState.Pressed, TertiaryRate, null); 
     303        ControllerOne.Listen(Button.RightShoulder, ButtonState.Released, TertiaryRateStop, null); 
     304        ControllerOne.Listen(Button.LeftShoulder, ButtonState.Pressed, LaserRate, null); 
     305        ControllerOne.Listen(Button.LeftShoulder, ButtonState.Released, LaserRateStop, null); 
    253306        // Sets controls. Focused movement is currently not implemented 
     307    } 
     308 
     309    void PrimaryRate() 
     310    { 
     311        PrimaryROF = new Timer(); 
     312        PrimaryROF.Interval = 0.3; 
     313        PrimaryROF.Timeout += delegate { FirePrimary(Player, 1.0, 1.0, Shape.Rectangle); }; 
     314        PrimaryROF.Start(); 
     315    } 
     316 
     317    void PrimaryRateStop() 
     318    { 
     319        PrimaryROF.Stop(); 
    254320    } 
    255321     
     
    258324        if (PowerGauge.Value < 128) 
    259325        { 
    260             CreatePrimary(Player.X + 20, Player.Y + 10, 12.0, 3.0, new Vector(725.0, 30.0)); 
    261             CreatePrimary(Player.X + 20, Player.Y + 4, 12.0, 3.0, new Vector(725.0, -30.0)); 
    262             CreatePrimary(Player.X + 10, Player.Y + 17, 12.0, 3.0, new Vector(725.0, 120.0)); 
    263             CreatePrimary(Player.X + 10, Player.Y - 3, 12.0, 3.0, new Vector(725.0, -120.0)); 
    264             // Fires a wide, relatively slow shotgun-like 4 bullet spread from the top gun 
     326            CreatePrimary(Player.X + 25, Player.Y + 10, 12.0, 3.0, new Vector(725.0, 30.0), Color.LightYellow); 
     327            CreatePrimary(Player.X + 25, Player.Y + 4, 12.0, 3.0, new Vector(725.0, -30.0), Color.LightYellow); 
     328            CreatePrimary(Player.X + 15, Player.Y + 17, 12.0, 3.0, new Vector(725.0, 120.0), Color.LightYellow); 
     329            CreatePrimary(Player.X + 15, Player.Y - 3, 12.0, 3.0, new Vector(725.0, -120.0), Color.LightYellow); 
     330            // Fires a wide, relatively slow shotgun-like 4 bullet spread from the top gun. Very inaccurate at long range. 
    265331        } 
    266332        else if (PowerGauge.Value == 128) 
    267333        { 
    268             CreatePrimary(Player.X + 25, Player.Y, 15.0, 4.0, new Vector(800.0, 0.0)); 
    269             CreatePrimary(Player.X + 22, Player.Y + 12, 15.0, 4.0, new Vector(800.0, 30.0)); 
    270             CreatePrimary(Player.X + 22, Player.Y + 5, 15.0, 4.0, new Vector(800.0, -30.0)); 
    271             CreatePrimary(Player.X + 11, Player.Y + 20, 15.0, 4.0, new Vector(800.0, 120.0)); 
    272             CreatePrimary(Player.X + 11, Player.Y - 1, 15.0, 4.0, new Vector(800.0, -120.0)); 
    273         } 
    274     } 
    275  
    276     void CreatePrimary(double x, double y, double sizeX, double sizeY, Vector PrimaryImpulse) 
    277     { 
    278         Bullet Primary = new Bullet(sizeX, sizeY); 
    279         Primary.Color = Color.White; 
    280         Primary.X = x; 
    281         Primary.Y = y; 
     334            CreatePrimary(Player.X + 30, Player.Y + 7.5, 15.0, 4.0, new Vector(800.0, 0.0), Color.Yellow); 
     335            CreatePrimary(Player.X + 27.5, Player.Y + 12, 15.0, 4.0, new Vector(800.0, 75.0), Color.Yellow); 
     336            CreatePrimary(Player.X + 27.5, Player.Y + 5, 15.0, 4.0, new Vector(800.0, -75.0), Color.Yellow); 
     337            CreatePrimary(Player.X + 17.5, Player.Y + 20, 15.0, 4.0, new Vector(800.0, 150.0), Color.Yellow); 
     338            CreatePrimary(Player.X + 17.5, Player.Y - 1, 15.0, 4.0, new Vector(800.0, -150.0), Color.Yellow); 
     339            // The Full-Power Mode version of the primary shot. Adds a fifth, accurate center projectile. 
     340        } 
     341    } 
     342 
     343    void CreatePrimary(double X, double Y, double SizeX, double SizeY, Vector PrimaryImpulse, Color PrimaryColor) 
     344    { 
     345        Bullet Primary = new Bullet(SizeX, SizeY); 
     346        Primary.Color = PrimaryColor; 
     347        Primary.X = X; 
     348        Primary.Y = Y; 
    282349             
    283350            if (PowerGauge.Value == 128) 
    284351            { 
    285                 Primary.Damage = 15; 
     352                Primary.Damage = 11; 
    286353            } 
    287354            else if (PowerGauge.Value < 128) 
     
    291358 
    292359        Primary.Mass = 1; 
    293         Primary.IgnoresGravity = true; 
    294360        AddCollisionHandler(Primary, PrimaryDamagesEnemy); 
    295361        Add(Primary); 
     
    307373            primaryBullet.Destroy(); 
    308374 
    309             if (targetEnemy.HP < 0) 
     375            if (targetEnemy.HP <= 0) 
    310376            { 
    311377                ScoreGauge.Value += targetEnemy.ScoreValue; 
     
    323389    } 
    324390 
     391    void SecondaryRate() 
     392    { 
     393        SecondaryROF = new Timer(); 
     394        SecondaryROF.Interval = 0.25; 
     395        SecondaryROF.Timeout += delegate { FireSecondary(Player, 1.0, 1.0, Shape.Diamond); }; 
     396        SecondaryROF.Start(); 
     397    } 
     398 
     399    void SecondaryRateStop() 
     400    { 
     401        SecondaryROF.Stop(); 
     402    } 
     403 
    325404    void FireSecondary(PhysicsObject Player, double ShotWidth, double ShotHeight, Shape ShotShape) 
    326405    { 
    327         CreateSecondary(Player.X + 20, Player.Y - 4, 15.0, 5.0, new Vector(1200.0, 0.0)); 
    328         CreateSecondary(Player.X + 20, Player.Y - 10, 15.0, 5.0, new Vector(1200.0, 0.0)); 
    329         // Fires a fast and powerful double-barrel shot from the bottom gun 
    330     } 
    331  
    332     void CreateSecondary(double X, double Y, double SizeX, double SizeY, Vector SecondaryImpulse) 
     406        if (PowerGauge.Value < 128) 
     407        { 
     408            CreateSecondary(Player.X + 20, Player.Y - 4, 15.0, 5.0, new Vector(1200.0, 0.0), Color.SkyBlue); 
     409            CreateSecondary(Player.X + 20, Player.Y - 10, 15.0, 5.0, new Vector(1200.0, 0.0), Color.SkyBlue); 
     410            // Fires a fast and powerful double-barrel shot from the bottom gun 
     411        } 
     412        else if (PowerGauge.Value == 128) 
     413        { 
     414            CreateSecondary(Player.X + 25, Player.Y - 5, 20.0, 7.0, new Vector(1250.0, 0.0), Color.Cyan); 
     415            CreateSecondary(Player.X + 25, Player.Y - 12, 20.0, 7.0, new Vector(1250.0, 0.0), Color.Cyan); 
     416            // Full-Power version of the double barrel gun. Increases the size, velocity and damage of the shots. 
     417        } 
     418    } 
     419 
     420    void CreateSecondary(double X, double Y, double SizeX, double SizeY, Vector SecondaryImpulse, Color SecondaryColor) 
    333421    { 
    334422        Bullet Secondary = new Bullet(SizeX, SizeY); 
    335423        Secondary.Shape = Shape.Diamond; 
    336         Secondary.Color = Color.White; 
     424        Secondary.Color = SecondaryColor; 
    337425        Secondary.X = X; 
    338426        Secondary.Y = Y; 
    339         Secondary.Damage = 25; 
     427 
     428        if (PowerGauge.Value == 128) 
     429        { 
     430            Secondary.Damage = 30; 
     431        } 
     432        else if (PowerGauge.Value < 128) 
     433        { 
     434            Secondary.Damage = 20; 
     435        } 
     436 
    340437        Secondary.Mass = 1; 
    341         Secondary.IgnoresGravity = true; 
    342438        AddCollisionHandler(Secondary, SecondaryDamagesEnemy); 
    343439        Add(Secondary); 
     
    355451            secondaryBullet.Destroy(); 
    356452 
    357             if (targetEnemy.HP < 0) 
     453            if (targetEnemy.HP <= 0) 
    358454            { 
    359455                ScoreGauge.Value += targetEnemy.ScoreValue; 
     
    371467    } 
    372468 
     469    void TertiaryRate() 
     470    { 
     471        TertiaryROF = new Timer(); 
     472        TertiaryROF.Interval = 1.25; 
     473        TertiaryROF.Timeout += delegate { FireTertiary(Player, 1.0, 1.0, Shape.Diamond); }; 
     474        TertiaryROF.Start(); 
     475    } 
     476 
     477    void TertiaryRateStop() 
     478    { 
     479        TertiaryROF.Stop(); 
     480    } 
     481 
     482    void FireTertiary(PhysicsObject Player, double ShotWidth, double ShotHeight, Shape ShotShape) 
     483    { 
     484        if (PowerGauge.Value < 128) 
     485        { 
     486            CreateTertiary(Player.X + 35, Player.Y, 40.0, 17.5, new Vector(700.0, 0.0), Color.White); 
     487            // Fires a relatively slow, large and strong projectile that requires an arming time. 
     488        } 
     489        else if (PowerGauge.Value == 128) 
     490        { 
     491            CreateTertiary(Player.X + 45, Player.Y, 50.0, 20.0, new Vector(750.0, 0.0), Color.Wheat); 
     492            // Full Power version. 1.5x more power and larger. 
     493        } 
     494    } 
     495 
     496    void CreateTertiary(double X, double Y, double SizeX, double SizeY, Vector TertiaryImpulse, Color TertiaryColor) 
     497    { 
     498        Bullet Tertiary = new Bullet(SizeX, SizeY); 
     499        Tertiary.Shape = Shape.Diamond; 
     500        Tertiary.Color = TertiaryColor; 
     501        Tertiary.X = X; 
     502        Tertiary.Y = Y; 
     503 
     504        if (PowerGauge.Value == 128) 
     505        { 
     506            Tertiary.Damage = 150; 
     507        } 
     508        else if (PowerGauge.Value < 128) 
     509        { 
     510            Tertiary.Damage = 100; 
     511        } 
     512 
     513        Tertiary.Mass = 1; 
     514        AddCollisionHandler(Tertiary, TertiaryDamagesEnemy); 
     515        Add(Tertiary); 
     516        Tertiary.Hit(TertiaryImpulse); 
     517    } 
     518 
     519    void TertiaryDamagesEnemy(IPhysicsObject Tertiary, IPhysicsObject Target) 
     520    { 
     521        Bullet tertiaryBullet = Tertiary as Bullet; 
     522        Enemy targetEnemy = Target as Enemy; 
     523 
     524        if (Target.Tag.ToString() == "Enemy") 
     525        { 
     526            targetEnemy.HP -= tertiaryBullet.Damage; 
     527            tertiaryBullet.Destroy(); 
     528 
     529            if (targetEnemy.HP <= 0) 
     530            { 
     531                ScoreGauge.Value += targetEnemy.ScoreValue; 
     532                targetEnemy.Destroy(); 
     533            } 
     534        } 
     535        else if (Target.Tag.ToString() == "KB") 
     536        { 
     537            tertiaryBullet.Destroy(); 
     538        } 
     539        else if (Target.Tag.ToString() == "LB") 
     540        { 
     541            tertiaryBullet.Destroy(); 
     542        } 
     543    } 
     544 
     545    void LaserRate() 
     546    { 
     547        LaserROF = new Timer(); 
     548        LaserROF.Interval = 0.01; 
     549        LaserROF.Timeout += delegate { FireLaser(Player, 1.0, 1.0, Shape.Rectangle); }; 
     550        LaserROF.Start(); 
     551    } 
     552 
     553    void LaserRateStop() 
     554    { 
     555        LaserROF.Stop(); 
     556    } 
     557 
     558    void FireLaser(PhysicsObject Player, double ShotWidth, double ShotHeight, Shape ShotShape) 
     559    { 
     560        if (PowerGauge.Value < 128) 
     561        { 
     562            CreateLaser(Player.X + 36, Player.Y, 40.0, 2.5, new Vector(1750.0, 0.0), Color.LightGreen); 
     563            // Fires a focused laser beam. Deals low damage but pierces enemies. 
     564        } 
     565        else if (PowerGauge.Value == 128) 
     566        { 
     567            CreateLaser(Player.X + 36, Player.Y + 5, 40.0, 2.5, new Vector(1750.0, 0.0), Color.Red); 
     568            CreateLaser(Player.X + 36, Player.Y - 5, 40.0, 2.5, new Vector(1750.0, 0.0), Color.Red); 
     569            // The Full Power version fires two lasers instead of one. 
     570        } 
     571    } 
     572 
     573    void CreateLaser(double X, double Y, double SizeX, double SizeY, Vector LaserImpulse, Color LaserColor) 
     574    { 
     575        Bullet Laser = new Bullet(SizeX, SizeY); 
     576        Laser.Shape = Shape.Rectangle; 
     577        Laser.Color = LaserColor; 
     578        Laser.X = X; 
     579        Laser.Y = Y; 
     580 
     581        if (PowerGauge.Value == 128) 
     582        { 
     583            Laser.Damage = 2; 
     584        } 
     585        else if (PowerGauge.Value < 128) 
     586        { 
     587            Laser.Damage = 3; 
     588        } 
     589 
     590        Laser.Mass = 1; 
     591        AddCollisionHandler(Laser, LaserDamagesEnemy); 
     592        Add(Laser); 
     593        Laser.Hit(LaserImpulse); 
     594    } 
     595 
     596    void LaserDamagesEnemy(IPhysicsObject Laser, IPhysicsObject Target) 
     597    { 
     598        Bullet laserProjectile = Laser as Bullet; 
     599        Enemy targetEnemy = Target as Enemy; 
     600 
     601        if (Target.Tag.ToString() == "Enemy") 
     602        { 
     603            targetEnemy.HP -= laserProjectile.Damage; 
     604 
     605            if (targetEnemy.HP <= 0) 
     606            { 
     607                ScoreGauge.Value += targetEnemy.ScoreValue; 
     608                targetEnemy.Destroy(); 
     609            } 
     610        } 
     611        else if (Target.Tag.ToString() == "KB") 
     612        { 
     613            laserProjectile.Destroy(); 
     614        } 
     615        else if (Target.Tag.ToString() == "LB") 
     616        { 
     617            laserProjectile.Destroy(); 
     618        } 
     619    } 
     620 
    373621    void SetVelocity(PhysicsObject Player, Vector velocity) 
    374622    { 
     
    379627    { 
    380628        PowerGauge = new IntMeter(0); 
     629        PowerGauge.MaxValue = 128; 
    381630 
    382631        Label PowerMeter = new Label(); 
     
    395644        PowerText.Color = Color.Red; 
    396645        Add(PowerText); 
     646 
     647        ControllerOne.Listen(Button.Start, ButtonState.Pressed, PowerDebug, null); 
     648    } 
     649 
     650    void PowerDebug() 
     651    { 
     652        PowerGauge.Value = PowerGauge.MaxValue; 
    397653    } 
    398654 
     
    417673        Add(ScoreText); 
    418674    } 
     675 
     676    void SpawnSmallPower(Vector Position) 
     677    { 
     678        Power SmallPower = new Power(18.0, 18.0); 
     679        SmallPower.Position = Position; 
     680        SmallPower.Shape = Shape.Rectangle; 
     681        SmallPower.Color = Color.Red; 
     682        SmallPower.PowerValue = 1; 
     683        SmallPower.ScoreValue = 10; 
     684        SmallPower.Mass = 10; 
     685        SmallPower.LinearDamping = 0.985; 
     686        SmallPower.Tag = "Power"; 
     687        AddCollisionHandler(SmallPower, "P1", ObtainPower); 
     688        Add(SmallPower); 
     689    } 
     690 
     691    void SpawnPower(Vector Position) 
     692    { 
     693        Power Power = new Power(24.0, 24.0); 
     694        Power.Position = Position; 
     695        Power.Shape = Shape.Rectangle; 
     696        Power.Color = Color.Red; 
     697        Power.PowerValue = 4; 
     698        Power.ScoreValue = 40; 
     699        Power.Mass = 10; 
     700        Power.LinearDamping = 0.985; 
     701        Power.Tag = "Power"; 
     702        AddCollisionHandler(Power, "P1", ObtainPower); 
     703        Add(Power); 
     704    } 
     705 
     706    void SpawnLargePower(Vector Position) 
     707    { 
     708        Power LargePower = new Power(30.0, 30.0); 
     709        LargePower.Position = Position; 
     710        LargePower.Shape = Shape.Rectangle; 
     711        LargePower.Color = Color.Red; 
     712        LargePower.PowerValue = 10; 
     713        LargePower.ScoreValue = 100; 
     714        LargePower.Mass = 10; 
     715        LargePower.LinearDamping = 0.985; 
     716        LargePower.Tag = "Power"; 
     717        AddCollisionHandler(LargePower, "P1", ObtainPower); 
     718        Add(LargePower); 
     719    } 
     720 
     721    void ObtainPower(IPhysicsObject Collider, IPhysicsObject Player) 
     722    { 
     723        Power obtainablePower = Collider as Power; 
     724 
     725        if (Collider.Tag.ToString() == "Power") 
     726        { 
     727            PowerGauge.Value += obtainablePower.PowerValue; 
     728            ScoreGauge.Value += obtainablePower.ScoreValue; 
     729            obtainablePower.Destroy(); 
     730        } 
     731    } 
     732 
     733    void ScoreboardInit() 
     734    { 
     735        if (ScoreGauge.Value <= 2500) 
     736        { 
     737            HighScoreWindow ScoreboardShow = new HighScoreWindow( 
     738                                                                "High Scores", 
     739                                                                Scoreboard); 
     740            ScoreboardShow.Closed += SaveScores; 
     741            ScoreboardShow.Closed += delegate { ExitAfterWin(); }; 
     742            Add(ScoreboardShow); 
     743        } 
     744        else 
     745        { 
     746            HighScoreWindow ScoreboardShowHS = new HighScoreWindow( 
     747                                                                  "High Scores", 
     748                                                                  "Your score of %p is a high score! Enter name:", 
     749                                                                  Scoreboard, ScoreGauge.Value); 
     750            ScoreboardShowHS.Closed += SaveScores; 
     751            ScoreboardShowHS.Closed += delegate { ExitAfterWin(); }; 
     752            Add(ScoreboardShowHS); 
     753        } 
     754    } 
     755 
     756    void SaveScores(Window Sender) 
     757    { 
     758        DataStorage.Save<ScoreList>(Scoreboard, "Scoreboard.xml"); 
     759    } 
     760 
     761    void ExitAfterWin() 
     762    { 
     763        Timer.SingleShot(2.5, Exit); 
     764    } 
    419765} 
  • 2012/24/JaakkoL/Crisis Fire/FysiikkaPeli1/FysiikkaPeli1/obj/x86/Debug/ContentPipeline-{7ACFD14C-C6F7-4882-A22A-55EBD417A6D1}.xml

    r3010 r3039  
    33  <Asset Type="Pipeline:BuildItemCollection"> 
    44    <Item> 
    5       <Source>FieldFromTilemap.txt</Source> 
    6       <Name>FieldFromTilemap</Name> 
     5      <Source>FieldFromTilemapNormal.txt</Source> 
     6      <Name>FieldFromTilemapNormal</Name> 
    77      <Importer>TextFileImporter</Importer> 
    88      <Processor>TextFileContentProcessor</Processor> 
    99      <Options>None</Options> 
    10       <Output>C:\MyTemp\JaakkoL\Crisis Fire\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\FieldFromTilemap.xnb</Output> 
    11       <Time>2012-06-13T13:39:14.9145117+03:00</Time> 
     10      <Output>C:\MyTemp\JaakkoL\Crisis Fire\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\FieldFromTilemapNormal.xnb</Output> 
     11      <Time>2012-06-14T10:38:06.0314138+03:00</Time> 
    1212    </Item> 
    1313    <BuildSuccessful>true</BuildSuccessful> 
     
    2626      <Assembly> 
    2727        <Key>C:\Program Files (x86)\Jypeli\lib\ContentExtensions\TextFileContentExtension.dll</Key> 
    28         <Value>2012-04-23T14:23:36+03:00</Value> 
     28        <Value>2012-06-13T10:59:54+03:00</Value> 
    2929      </Assembly> 
    3030      <Assembly> 
  • 2012/24/JaakkoL/Crisis Fire/FysiikkaPeli1/FysiikkaPeli1/obj/x86/Debug/Crisis Fire.csproj.FileListAbsolute.txt

    r3010 r3039  
    77C:\MyTemp\JaakkoL\Crisis Fire\FysiikkaPeli1\FysiikkaPeli1\obj\x86\Debug\FysiikkaPeli1.exe 
    88C:\MyTemp\JaakkoL\Crisis Fire\FysiikkaPeli1\FysiikkaPeli1\obj\x86\Debug\FysiikkaPeli1.pdb 
    9 C:\MyTemp\JaakkoL\Crisis Fire\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\FieldFromTilemap.xnb 
    10 C:\MyTemp\JaakkoL\Crisis Fire\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\FieldFromTilemap.txt 
     9C:\MyTemp\JaakkoL\Crisis Fire\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\FieldFromTilemapNormal.xnb 
     10C:\MyTemp\JaakkoL\Crisis Fire\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\FieldFromTilemapNormal.txt 
  • 2012/24/JaakkoL/Crisis Fire/FysiikkaPeli1/FysiikkaPeli1/obj/x86/Debug/cachefile-{7ACFD14C-C6F7-4882-A22A-55EBD417A6D1}-targetpath.txt

    r3010 r3039  
    1 Content\FieldFromTilemap.xnb 
    2 Content\FieldFromTilemap.txt 
     1Content\FieldFromTilemapNormal.xnb 
     2Content\FieldFromTilemapNormal.txt 
  • 2012/24/JaakkoL/Crisis Fire/FysiikkaPeli1/FysiikkaPeli1Content/Crisis Fire Content.contentproj

    r3010 r3039  
    4646  </ItemGroup> 
    4747  <ItemGroup> 
    48     <Compile Include="FieldFromTilemap.txt"> 
     48    <Compile Include="FieldFromTilemapNormal.txt"> 
    4949      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
    50       <Name>FieldFromTilemap</Name> 
     50      <Name>FieldFromTilemapNormal</Name> 
    5151      <Importer>TextFileImporter</Importer> 
    5252      <Processor>TextFileContentProcessor</Processor> 
Note: See TracChangeset for help on using the changeset viewer.