Changeset 5871 for 2015/23


Ignore:
Timestamp:
2015-06-04 16:25:01 (4 years ago)
Author:
toolala
Message:

Paljon sälää. Haulikkoa täydellistetty, rekyyli lisätty

Location:
2015/23/ToukoA/HotlineVihti/FatalShot
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • 2015/23/ToukoA/HotlineVihti/FatalShot/FatalShot/FatalShot.cs

    r5866 r5871  
    2525    AssaultRifle pelaajan1Ase3; 
    2626    bool pelikaynnissa = true; 
    27  
     27    bool akkadessa = true; 
     28    Timer rekyylitimer = new Timer(); 
    2829    PhysicsObject asetrigger; 
    2930 
    3031    //bool vaihdettujo = false; 
    3132 
    32     int ammovalue = 30; 
     33    int ammokalashnikov = 24; 
     34    int ammomp5 = 30; 
    3335    //int ammo2value = 150; 
    3436    bool haulikkovalmiina = true; 
     
    4951        TileMap kentta2 = TileMap.FromLevelAsset("kentta"); 
    5052        kentta2.SetTileMethod('&', luoPahis); 
     53        kentta2.SetTileMethod('H', VaihdaAse); 
    5154        kentta2.SetTileMethod('/', VaihdaAse2); 
    52         kentta2.SetTileMethod('H', VaihdaAse3); 
     55        kentta2.SetTileMethod('¤', VaihdaAse3); 
    5356        kentta2.Execute(ruudunKoko, ruudunKoko); 
    5457 
    5558        Mouse.Listen(MouseButton.Left, ButtonState.Down, Ammu, "Ammu", pelaajan1Ase); 
    5659        Mouse.Listen(MouseButton.Left, ButtonState.Down, Ammu3, null, pelaajan1Ase3); 
     60        Mouse.Listen(MouseButton.Left, ButtonState.Down, Ammu2, null, pelaajan1Ase2); 
     61        Mouse.Listen(MouseButton.Left, ButtonState.Released, delegate { Camera.Position = pelaaja1.Position; rekyylitimer.Stop(); }, ""); 
     62        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, delegate { { rekyylitimer.Start(); } }, ""); 
    5763 
    5864        //Mouse.Listen(MouseButton.Middle, ButtonState.Pressed, VaihdaAse, "Vaihda ase"); 
     
    7379 
    7480        Timer hauliajastin = new Timer(); 
    75         hauliajastin.Interval = 0.95; 
     81        hauliajastin.Interval = 1.1; 
    7682        hauliajastin.Timeout += delegate() 
    7783        { 
     
    8187        hauliajastin.Start(); 
    8288 
     89        rekyylitimer.Interval = 0.1; 
     90        rekyylitimer.Timeout += delegate() 
     91        { 
     92            if (akkadessa && pelaajan1Ase2.Ammo > 8) 
     93            { 
     94                Camera.X += 4; 
     95                Camera.Y += 4; 
     96            } 
     97        }; 
    8398 
    8499        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää"); 
     
    86101        Mouse.IsCursorVisible = true; 
    87102        Camera.Follow(pelaaja1); 
     103    } 
     104 
     105    void VaihdaAse(Vector paikka, double leveys, double korkeus) 
     106    { 
     107        LisaaAseTrigger(paikka, leveys, korkeus, "ase", pistooli); 
    88108    } 
    89109 
     
    120140    } 
    121141 
     142    /*void rekyyli() 
     143    { 
     144        rekyylitimer = new Timer(); 
     145        rekyylitimer.Interval = 0.1; 
     146        rekyylitimer.Timeout += delegate() 
     147        { 
     148            Camera.X += 1; 
     149            Camera.Y += 1; 
     150            rekyylitimer.Stop(); 
     151        }; 
     152 
     153        rekyylitimer.Start(); 
     154    }*/ 
     155 
    122156    void Ammu3(AssaultRifle ase3) 
    123157    { 
    124158        PhysicsObject ammus = ase3.Shoot(); 
    125159 
     160        //for (int i = 0; i < 10; i++) 
     161        //{ 
     162        //    rekyyli(); 
     163        //} 
     164 
     165 
    126166        if (ammus != null) 
    127167        { 
    128             ase3.Power.DefaultValue = 350; 
    129             ase3.FireRate = 5; 
     168            ase3.Power.DefaultValue = 450; 
     169            ase3.FireRate = 10; 
    130170            ammus.Size *= 0.45; 
    131171        } 
    132         /*if (haulikkovalmiina && pelikaynnissa) 
     172    } 
     173 
     174    void Ammu(AssaultRifle ase) 
     175    { 
     176        if (haulikkovalmiina && pelikaynnissa) 
    133177        { 
    134178            for (int i = 0; i < 6; i++) 
    135179            { 
    136  
    137180 
    138181                PhysicsObject hauli = new PhysicsObject(2, 2); 
     
    141184                hauli.Position = pelaaja1.Position; 
    142185                //Vector suunta = (Mouse.PositionOnWorld - pelaajan1Ase.AbsolutePosition); 
    143                 Vector impulssi = Vector.FromLengthAndAngle(70000, (pelaajan1Ase.Angle + (RandomGen.NextAngle(Angle.FromDegrees(-15), Angle.FromDegrees(15))))); 
     186                Vector impulssi = Vector.FromLengthAndAngle(70000, (pelaajan1Ase.Angle + (RandomGen.NextAngle(Angle.FromDegrees(-25), Angle.FromDegrees(25))))); 
    144187                //hauli.Angle = RandomGen.NextAngle(Angle.FromDegrees(-45), Angle.FromDegrees(45)); 
    145188                Add(hauli); 
    146                 hauli.MaximumLifetime = TimeSpan.FromSeconds(0.2); 
    147                 AddCollisionHandler(hauli, "paha", AmmusOsui); 
     189                hauli.MaximumLifetime = TimeSpan.FromSeconds(0.22); 
     190                AddCollisionHandler(hauli, "paha", AmmusOsui2); 
    148191                AddCollisionHandler(hauli, "seina", CollisionHandler.DestroyObject); 
    149192 
     
    151194                haulikkovalmiina = false; 
    152195            } 
    153         }*/ 
    154     } 
    155  
    156     void Ammu(AssaultRifle ase) 
    157     { 
    158         /*PhysicsObject ammus = ase.Shoot(); 
     196        } 
     197 
     198    } 
     199 
     200    void Ammu2(AssaultRifle ase2) 
     201    { 
     202        PhysicsObject ammus = ase2.Shoot(); 
     203        //for (int i = 0; i < 10; i++) 
     204        //{ 
     205        //    rekyyli(); 
     206        //} 
    159207 
    160208        if (ammus != null) 
    161209        { 
    162             ase.Power.DefaultValue = 450; 
    163             ase.FireRate = 10; 
    164  
    165             ammus.Size *= 0.45; 
    166             ammus.MaximumLifetime = TimeSpan.FromSeconds(4); 
    167  
    168         }*/ 
    169  
    170  
    171         if (haulikkovalmiina && pelikaynnissa) 
    172         { 
    173             for (int i = 0; i < 9; i++) 
    174             { 
    175  
    176  
    177                 PhysicsObject hauli = new PhysicsObject(2, 2); 
    178                 hauli.Shape = Shape.Ellipse; 
    179                 hauli.Color = Color.Yellow; 
    180                 hauli.Position = pelaaja1.Position; 
    181                 //Vector suunta = (Mouse.PositionOnWorld - pelaajan1Ase.AbsolutePosition); 
    182                 Vector impulssi = Vector.FromLengthAndAngle(70000, (pelaajan1Ase.Angle + (RandomGen.NextAngle(Angle.FromDegrees(-35), Angle.FromDegrees(35))))); 
    183                 //hauli.Angle = RandomGen.NextAngle(Angle.FromDegrees(-45), Angle.FromDegrees(45)); 
    184                 Add(hauli); 
    185                 hauli.MaximumLifetime = TimeSpan.FromSeconds(0.22); 
    186                 AddCollisionHandler(hauli, "paha", AmmusOsui); 
    187                 AddCollisionHandler(hauli, "seina", CollisionHandler.DestroyObject); 
    188  
    189                 hauli.Push(impulssi); 
    190                 haulikkovalmiina = false; 
    191             } 
    192         } 
    193  
    194     } 
    195  
    196     void Ammu2(LaserGun ase2) 
    197     { 
    198         PhysicsObject ammus = ase2.Shoot(); 
    199  
    200         if (ammus != null) 
    201         { 
    202             ase2.Power.DefaultValue = 1000; 
    203             ase2.FireRate = 1000; 
    204             ammus.Size *= 10; 
     210            ase2.Power.DefaultValue = 250; 
     211            ase2.FireRate = 5; 
     212            ammus.Size *= 0.65; 
    205213        } 
    206214    } 
     
    227235 
    228236        pelaajan1Ase2 = new AssaultRifle(30, 10); 
    229         pelaajan1Ase2.Ammo.Value = ammovalue; 
     237        pelaajan1Ase2.Ammo.Value = ammokalashnikov; 
    230238        pelaajan1Ase2.ProjectileCollision = AmmusOsui; 
    231239        //pelaaja1.Aseet.Add(pelaajan1Ase2); 
     
    234242 
    235243        pelaajan1Ase = new AssaultRifle(30, 10); 
    236         pelaajan1Ase.Ammo.Value = ammovalue; 
    237         pelaajan1Ase.ProjectileCollision = AmmusOsui; 
     244        pelaajan1Ase.ProjectileCollision = AmmusOsui2; 
    238245        pelaajan1Ase.Image = pistooli; 
    239246        //pelaaja1.Aseet.Add(pelaajan1Ase); 
     
    241248 
    242249        pelaajan1Ase3 = new AssaultRifle(30, 10); 
    243         pelaajan1Ase3.Ammo.Value = ammovalue; 
    244         pelaajan1Ase3.ProjectileCollision = AmmusOsui; 
    245         pelaajan1Ase3.Image = pistooli; 
     250        pelaajan1Ase3.Ammo.Value = ammomp5; 
     251        pelaajan1Ase3.ProjectileCollision = AmmusOsui3; 
     252        pelaajan1Ase3.Image = mp5; 
    246253 
    247254        //pelaaja1.Aseet.Add(pelaajan1Ase3); 
     255 
     256        AddCollisionHandler(pelaaja1, "ase", ase); 
    248257 
    249258        AddCollisionHandler(pelaaja1, "ase2", ase2); 
     
    259268        pelaaja1.Ase = pelaajan1Ase; 
    260269        pelaaja1.Ase2 = pelaajan1Ase2; 
    261         //pelaaja1.Ase3 = pelaajan1Ase3; 
     270        pelaaja1.Ase3 = pelaajan1Ase3; 
    262271        Add(pelaaja1); 
    263272 
     273    } 
     274 
     275    void ase(PhysicsObject pelaaja1, PhysicsObject ase) 
     276    { 
     277        pelaaja1.Remove(pelaajan1Ase3); 
     278        pelaaja1.Remove(pelaajan1Ase2); 
     279 
     280        pelaaja1.Add(pelaajan1Ase); 
     281 
     282        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää"); 
     283 
     284        ase.Destroy(); 
     285 
     286        pelikaynnissa = true; 
    264287    } 
    265288 
     
    285308        pelaaja1.Add(pelaajan1Ase); 
    286309 
    287         pelaajan1Ase.Ammo.Value = ammovalue; 
     310        //pelaajan1Ase.Ammo.Value = ammo; 
    288311 
    289312        ase2.Destroy(); 
    290313         
    291314 
    292             Mouse.ListenMovement(0.1, Tahtaa, "Tähtää"); 
     315        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää"); 
    293316    } 
    294317 
     
    311334    void luoPahis(Vector paikka, double leveys, double korkeus) 
    312335    { 
    313         Pahis pahis = new Pahis(leveys * 0.5, korkeus * 0.5); 
     336        Pahis pahis = new Pahis(leveys * 0.6, korkeus * 0.6, veriLantti, mp5); 
    314337        pahis.Position = paikka; 
    315338        pahis.Image = pelaajanKuva; 
    316         pahis.Shape = Shape.Circle; 
     339        pahis.Shape = Shape.Octagon; 
    317340 
    318341        FollowerBrain seuraajaAivot = new FollowerBrain(pelaaja1); 
     
    338361        randomAivot.Speed = 500; 
    339362 
    340  
    341  
    342363        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(ruudunKoko); 
    343364        labyrinttiAivot.Speed = 100.0; 
     
    361382    void pahisAmpuu(AssaultRifle ase, Pahis pahis) 
    362383    { 
    363         Vector suunta = (pelaaja1.Position - pahis.Position).Normalize(); 
     384        /*Vector suunta = (pelaaja1.Position - pahis.Position).Normalize(); 
    364385 
    365386        if (pelaaja1.Velocity == Vector.Zero) 
     
    384405            ammus.MaximumLifetime = TimeSpan.FromSeconds(4); 
    385406            ammus.CollisionIgnoreGroup = 1; 
    386         } 
     407        }*/ 
    387408    } 
    388409 
     
    406427    } 
    407428 
    408     void AmmusOsui( PhysicsObject ammus, PhysicsObject kohde) 
     429    void AmmusOsui2(PhysicsObject hauli, PhysicsObject kohde) 
     430    { 
     431        hauli.Destroy(); 
     432        if (kohde.Tag.Equals("paha")) 
     433        { 
     434            LisaaAseTrigger(kohde.Position, ruudunKoko, ruudunKoko, "ase3", mp5); 
     435 
     436             
     437 
     438            GameObject verilantti = new GameObject(30, 30); 
     439            verilantti.Position = kohde.Position; 
     440            verilantti.Image = veriLantti; 
     441            Add(verilantti, -3); 
     442 
     443            //verilantti.MaxVelocity = 0; 
     444            //verilantti.CollisionIgnoreGroup = 1; 
     445            //verilantti.IgnoresCollisionResponse = true; 
     446 
     447            (kohde as Pahis).ElamaLaskuri.Value -= 3; 
     448             
     449        } 
     450 
     451        if (kohde.Tag.Equals("hyva")) 
     452        { 
     453            (kohde as Hyvis).Ase.Destroy(); 
     454            (kohde as Hyvis).Ase2.Destroy(); 
     455            (kohde as Hyvis).Ase3.Destroy(); 
     456            (kohde as Hyvis).Destroy(); 
     457            pelikaynnissa = false; 
     458        } 
     459         
     460    } 
     461 
     462    void AmmusOsui3( PhysicsObject ammus, PhysicsObject kohde) 
    409463    { 
    410464        ammus.Destroy(); 
     
    412466        { 
    413467 
     468            //LisaaAseTrigger(kohde.Position, ruudunKoko, ruudunKoko, "ase3", mp5); 
    414469 
    415470            Explosion rajahdys = new Explosion(5000); 
     
    418473            rajahdys.Force = 100; 
    419474            rajahdys.Speed = 100; 
    420             rajahdys.Position = kohde.Position+ new Vector(3,0); 
     475            rajahdys.Position = kohde.Position + new Vector(3, 0); 
    421476            rajahdys.ShockwaveColor = new Color(10, 0, 0, 0); 
    422477            Add(rajahdys); 
    423  
    424             LisaaAseTrigger(kohde.Position, ruudunKoko, ruudunKoko, "ase3", mp5); 
    425  
    426              
    427478 
    428479            GameObject verilantti = new GameObject(30, 30); 
     
    435486            //verilantti.IgnoresCollisionResponse = true; 
    436487 
    437             (kohde as Pahis).Ase.Destroy(); 
    438             (kohde as Pahis).Destroy(); 
     488            (kohde as Pahis).ElamaLaskuri.Value -= 1; 
    439489        } 
    440490 
     
    442492        { 
    443493            (kohde as Hyvis).Ase.Destroy(); 
     494            (kohde as Hyvis).Ase2.Destroy(); 
     495            (kohde as Hyvis).Ase3.Destroy(); 
    444496            (kohde as Hyvis).Destroy(); 
    445497            pelikaynnissa = false; 
     
    448500    } 
    449501 
     502    void AmmusOsui( PhysicsObject ammus, PhysicsObject kohde) 
     503    { 
     504        ammus.Destroy(); 
     505        if (kohde.Tag.Equals("paha")) 
     506        { 
     507 
     508            //LisaaAseTrigger(kohde.Position, ruudunKoko, ruudunKoko, "ase3", mp5); 
     509 
     510            Explosion rajahdys = new Explosion(5000); 
     511            rajahdys.Image = veriLantti; 
     512            rajahdys.MaxRadius = 70; 
     513            rajahdys.Force = 100; 
     514            rajahdys.Speed = 100; 
     515            rajahdys.Position = kohde.Position + new Vector(3, 0); 
     516            rajahdys.ShockwaveColor = new Color(10, 0, 0, 0); 
     517            Add(rajahdys); 
     518 
     519            GameObject verilantti = new GameObject(30, 30); 
     520            verilantti.Position = kohde.Position; 
     521            verilantti.Image = veriLantti; 
     522            Add(verilantti, -3); 
     523 
     524            //verilantti.MaxVelocity = 0; 
     525            //verilantti.CollisionIgnoreGroup = 1; 
     526            //verilantti.IgnoresCollisionResponse = true; 
     527 
     528            (kohde as Pahis).ElamaLaskuri.Value -= 3; 
     529        } 
     530 
     531        if (kohde.Tag.Equals("hyva")) 
     532        { 
     533            (kohde as Hyvis).Ase.Destroy(); 
     534            (kohde as Hyvis).Ase2.Destroy(); 
     535            (kohde as Hyvis).Ase3.Destroy(); 
     536            (kohde as Hyvis).Destroy(); 
     537            pelikaynnissa = false; 
     538        } 
     539 
     540    } 
     541 
    450542    void liikutaP(PhysicsObject pelaaja1, Vector nopeus) 
    451543    { 
  • 2015/23/ToukoA/HotlineVihti/FatalShot/FatalShot/Hyvis.cs

    r5864 r5871  
    3838    } 
    3939 
    40     /*private AssaultRifle ase3 = new AssaultRifle(10, 10); 
     40    private AssaultRifle ase3 = new AssaultRifle(10, 10); 
    4141    public AssaultRifle Ase3 
    4242    { 
     
    5151    } 
    5252 
    53     private List<Weapon> aseet = new List<Weapon>(); 
     53    /*private List<Weapon> aseet = new List<Weapon>(); 
    5454    public List<Weapon> Aseet 
    5555    { 
     
    7474            this.Ase2.Destroy(); 
    7575            this.Ase.Destroy(); 
     76            this.Ase3.Destroy(); 
    7677            this.Destroy(); 
    7778        }; 
  • 2015/23/ToukoA/HotlineVihti/FatalShot/FatalShot/Pahis.cs

    r5862 r5871  
    99    class Pahis : PhysicsObject 
    1010    { 
     11 
    1112        private IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
    1213        public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     
    2526        } 
    2627 
    27         public Pahis(double leveys, double korkeus) 
     28        public Pahis(double leveys, double korkeus, Image kuva, Image aseenkuva) 
    2829            : base(leveys, korkeus) 
    2930        { 
    30             elamaLaskuri.LowerLimit += delegate { 
    31                 this.Ase.Destroy(); 
    32                 this.Destroy();  
    33             }; 
     31            elamaLaskuri.LowerLimit += delegate { this.Tapa(kuva, aseenkuva); }; 
    3432        } 
     33 
     34 
     35        public void Tapa(Image kuva, Image aseenkuva) 
     36        { 
     37            Explosion rajahdys = new Explosion(5000); 
     38            rajahdys.Image = kuva; 
     39            rajahdys.MaxRadius = 70; 
     40            rajahdys.Force = 100; 
     41            rajahdys.Speed = 100; 
     42            rajahdys.Position = this.Position + new Vector(3, 0); 
     43            rajahdys.ShockwaveColor = new Color(10, 0, 0, 0); 
     44            Game.Add(rajahdys); 
     45 
     46            PhysicsObject asetrigger = PhysicsObject.CreateStaticObject(20, 20); 
     47            asetrigger.IgnoresCollisionResponse = true; 
     48            asetrigger.Tag = "ase3"; 
     49            asetrigger.Position = this.Position; 
     50            asetrigger.Image = aseenkuva; 
     51            Game.Add(asetrigger,1); 
     52 
     53            this.Ase.Destroy(); 
     54            this.Destroy(); 
     55        } 
     56 
     57        /*void VaihdaAse3(Vector paikka, double leveys, double korkeus) 
     58        { 
     59             
     60        } 
     61 
     62        void LisaaAseTrigger(Vector paikka, double leveys, double korkeus, string tagiNimi, Image kuva) 
     63        { 
     64            PhysicsObject asetrigger = PhysicsObject.CreateStaticObject(20, 20); 
     65            asetrigger.IgnoresCollisionResponse = true; 
     66            asetrigger.Tag = tagiNimi; 
     67            asetrigger.Position = paikka; 
     68            asetrigger.Image = kuva; 
     69            Add(asetrigger); 
     70 
     71 
     72 
     73        }*/ 
     74 
    3575    } 
  • 2015/23/ToukoA/HotlineVihti/FatalShot/FatalShotContent/kentta.txt

    r5864 r5871  
    11#################################################### 
    2 #........................##......#....#...&........# 
     2#.......................##......#....#...&........# 
    33#.# .&...............#...##......#....#............# 
    44#%#......&...........#...##......#.........&.......# 
Note: See TracChangeset for help on using the changeset viewer.