- Timestamp:
- 2016-06-10 09:30:50 (7 years ago)
- Location:
- 2016/23/ohjaajat/Punasininen/Punasininen
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
2016/23/ohjaajat/Punasininen/Punasininen/Punasininen/Punasininen.cs
r7223 r7224 123 123 Win(percentageTracker.Value >= 50 ? red : blue); 124 124 var restart = new Timer() { Interval = 5, IgnorePause = true }; 125 restart.Timeout += () => { ClearAll(); Begin(); Pause(); };125 restart.Timeout += RestartGame; 126 126 restart.Start(); 127 127 }; … … 186 186 Add(player); 187 187 188 var glow = new GameObject(240, 240); 189 glow.Image = playersColor == redColor ? orangeGlow : blueGlow; 190 player.Add(glow); 191 188 192 player.Weapon = new AssaultRifle(leveys * 1.5, korkeus * 1.5) 189 193 { … … 222 226 { 223 227 int hurdur = RandomGen.NextInt(0, 3); 228 Image glow = player == red ? orangeGlow : blueGlow; 224 229 225 230 switch (hurdur) 226 231 { 227 232 case 0: 228 player.Weapon = new RocketLauncher(player.Weapon.Width, player.Weapon.Height, player.Weapon.Image, player);233 player.Weapon = new RocketLauncher(player.Weapon.Width, player.Weapon.Height, player.Weapon.Image, glow, player); 229 234 break; 230 235 case 1: 231 player.Weapon = new GrenadeLauncher(player.Weapon.Width, player.Weapon.Height, player.Weapon.Image, player);236 player.Weapon = new GrenadeLauncher(player.Weapon.Width, player.Weapon.Height, player.Weapon.Image, glow, player); 232 237 break; 233 238 case 2: 234 player.Weapon = new LaserGun(player.Weapon.Width, player.Weapon.Height) { Image = player.Weapon.Image, ProjectileCollision = delegate (PhysicsObject a, PhysicsObject b) { ColorTile(a, b); a.Destroy(); }, AttackSound = null, MaxAmmoLifetime = TimeSpan.FromSeconds(4) };239 player.Weapon = new SprayGun(player.Weapon.Width, player.Weapon.Height, player.Weapon.Image, glow, player); 235 240 break; 236 241 default: … … 256 261 } 257 262 263 void RestartGame() 264 { 265 cratePositions.Clear(); 266 ClearAll(); 267 Begin(); 268 IsPaused = false; 269 } 270 258 271 void Win(Player winner) 259 272 { … … 285 298 zoomTimer.IgnorePause = true; 286 299 zoomTimer.Start(); 287 288 cratePositions.Clear();289 300 } 290 301 … … 323 334 324 335 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Ohjeet"); 336 Keyboard.Listen(Key.F12, ButtonState.Pressed, RestartGame, null); 325 337 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta"); 326 338 -
2016/23/ohjaajat/Punasininen/Punasininen/Punasininen/WeaponCrate.cs
r7219 r7224 16 16 } 17 17 18 class SprayGun : LaserGun 19 { 20 private Image glowImage; 21 22 public SprayGun(double leveys, double korkeus, Image image, Image glowImage, Player owner) 23 : base(leveys, korkeus) 24 { 25 this.glowImage = glowImage; 26 Image = image; 27 ProjectileCollision = (PhysicsObject a, PhysicsObject b) => 28 { 29 ((Punasininen)Game).ColorTile(a, b); a.Destroy(); 30 }; 31 AttackSound = null; 32 MaxAmmoLifetime = TimeSpan.FromSeconds(4); 33 } 34 35 protected override PhysicsObject CreateProjectile() 36 { 37 var bullet = base.CreateProjectile(); 38 var glow = new GameObject(100, 100); 39 glow.Image = glowImage; 40 bullet.Add(glow); 41 return bullet; 42 } 43 } 44 18 45 class RocketLauncher : AssaultRifle 19 46 { 20 47 public Player Owner; 21 48 22 public RocketLauncher(double leveys, double korkeus, Image image, Player owner) 49 private Image glowImage; 50 51 public RocketLauncher(double leveys, double korkeus, Image image, Image glowImage, Player owner) 23 52 : base(leveys, korkeus) 24 53 { 54 this.glowImage = glowImage; 25 55 Image = image; 26 56 AttackSound = null; … … 38 68 rocket.Color = Owner.Color; 39 69 70 var rocketGlow = new GameObject(300, 300); 71 rocketGlow.Image = glowImage; 72 Game.Instance.Add(rocketGlow); 73 40 74 ((Punasininen)Game.Instance).AddCollisionHandler(rocket, (PhysicsObject a, PhysicsObject b) => 41 75 { … … 50 84 updateTimer.Timeout += () => 51 85 { 86 rocketGlow.Position = rocket.Position; 52 87 rocket.Velocity *= 1.03; 53 88 … … 72 107 explosionTimer.Stop(); 73 108 rocket.Destroy(); 109 rocketGlow.Destroy(); 74 110 75 111 var explosion = new Explosion(100); … … 98 134 public Player Owner; 99 135 100 protected override PhysicsObject CreateProjectile() 101 { 102 Grenade test = new Grenade(10, TimeSpan.FromSeconds(1)); 103 test.Explosion.ShockwaveColor = Owner.Color; 104 test.Explosion.MaxRadius = 300; 105 test.Explosion.Speed = 1000; 106 test.Explosion.Sound = null; 107 test.Explosion.ShockwaveReachesObject += delegate(IPhysicsObject a, Vector b) 108 { 109 if (a is Tile) 110 { 111 ((Punasininen)Game).ColorTile(test, (Tile)a); 112 } 113 }; 114 Timer.SingleShot(1, () => ((Punasininen)Game.Instance).NewWave(test.Position)); 115 return test; 116 } 136 private Image glowImage; 117 137 118 public GrenadeLauncher(double leveys, double korkeus, Image image, Player owner)138 public GrenadeLauncher(double leveys, double korkeus, Image image, Image glowImage, Player owner) 119 139 : base(leveys, korkeus) 120 140 { 141 this.glowImage = glowImage; 121 142 Image = image; 122 143 AttackSound = null; 123 144 FireRate = 1; 124 145 Power.DefaultValue = 30000; 125 Owner = owner; 126 146 Owner = owner; 127 147 } 148 149 protected override PhysicsObject CreateProjectile() 150 { 151 Grenade grenade = new Grenade(10, TimeSpan.FromSeconds(1)); 152 grenade.Explosion.ShockwaveColor = Owner.Color; 153 grenade.Explosion.MaxRadius = 300; 154 grenade.Explosion.Speed = 1000; 155 grenade.Explosion.Sound = null; 156 grenade.Explosion.ShockwaveReachesObject += delegate(IPhysicsObject a, Vector b) 157 { 158 if (a is Tile) 159 { 160 ((Punasininen)Game).ColorTile(grenade, (Tile)a); 161 } 162 }; 163 Timer.SingleShot(1, () => ((Punasininen)Game.Instance).NewWave(grenade.Position)); 164 165 var glow = new GameObject(400, 400); 166 glow.Image = glowImage; 167 grenade.Add(glow); 168 169 return grenade; 170 } 171 128 172 }
Note: See TracChangeset
for help on using the changeset viewer.