Ignore:
Timestamp:
2013-10-04 14:24:32 (10 years ago)
Author:
saolhaka
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/09-22/SanteriH/Kynari/Kynari/Kynari/Kynari.cs

    r4761 r4763  
    13351335            GameObject kilpi = new GameObject(60, 60, Shape.Circle); 
    13361336            kilpi.Color = new Color(Color.Blue, 50); 
    1337             //if (pelaaja.DamageVulnerability) { pelaaja.Clear(); } 
    13381337            pelaaja.Add(kilpi); 
    13391338            pelaaja.DamageResistance = true; 
     
    17951794    } 
    17961795 
    1797     void RakettiOsui(PhysicsObject ammus, PhysicsObject kohde) 
    1798     { 
    1799         if (ammus.IsDestroying) return; 
    1800         if (kohde.Tag.ToString() != "") 
    1801         { 
    1802             Explosion rajahdys = new Explosion(75); 
    1803             rajahdys.Position = ammus.Position; 
    1804             rajahdys.ShockwaveReachesObject += delegate(IPhysicsObject p, Vector shokki) { PaineaaltoOsuu(p, shokki, rajahdys, 40.0); }; 
    1805             Add(rajahdys); 
    1806             rajahdys.Force = 25; 
    1807             rajahdys.Speed = 1000; 
    1808  
    1809             ammus.Destroy(); // ei voi taata tapahtuuko tämä "heti". Siksi tarvitaan alkuun tarkistus, että onko ammus tuhoutumassa. 
    1810             if (!(kohde is Pelaaja)) return; 
    1811             Pelaaja pelaaja = (Pelaaja)kohde; 
    1812             if (pelaaja.DamageResistance == true) 
    1813             { 
    1814                 pelaaja.HPLaskuri.Value -= 10; 
    1815             } 
    1816             else if (pelaaja.DamageVulnerability == true) 
    1817             { 
    1818                 pelaaja.HPLaskuri.Value -= 30; 
    1819             } 
    1820             else 
    1821             { 
    1822                 pelaaja.HPLaskuri.Value -= 20; 
    1823             } 
    1824         } 
    1825     } 
    1826     void RakettiOsui2(PhysicsObject ammus, PhysicsObject kohde) 
    1827     { 
    1828         if (ammus.IsDestroying) return; 
    1829         if (kohde.Tag.ToString() != "") 
    1830         { 
    1831             Explosion rajahdys = new Explosion(75); 
    1832             rajahdys.Position = ammus.Position; 
    1833             rajahdys.ShockwaveReachesObject += delegate(IPhysicsObject p, Vector shokki) { PaineaaltoOsuu(p, shokki, rajahdys, 50.0); }; 
    1834             Add(rajahdys); 
    1835             rajahdys.Force = 25; 
    1836             rajahdys.Speed = 1000; 
    1837  
    1838             ammus.Destroy(); // ei voi taata tapahtuuko tämä "heti". Siksi tarvitaan alkuun tarkistus, että onko ammus tuhoutumassa. 
    1839             if (!(kohde is Pelaaja)) return; 
    1840             Pelaaja pelaaja = (Pelaaja)kohde; 
    1841             if (pelaaja.DamageResistance == true) 
    1842             { 
    1843                 pelaaja.HPLaskuri.Value -= 17; 
    1844             } 
    1845             else if (pelaaja.DamageVulnerability == true) 
    1846             { 
    1847                 pelaaja.HPLaskuri.Value -= 52; 
    1848             } 
    1849             else 
    1850             { 
    1851                 pelaaja.HPLaskuri.Value -= 35; 
    1852             } 
    1853         } 
    1854     } 
    1855     void RakettiOsui3(PhysicsObject ammus, PhysicsObject kohde) 
    1856     { 
    1857         if (ammus.IsDestroying) return; 
    1858         if (kohde.Tag.ToString() != "") 
    1859         { 
    1860             Explosion rajahdys = new Explosion(75); 
    1861             rajahdys.Position = ammus.Position; 
    1862             rajahdys.ShockwaveReachesObject += delegate(IPhysicsObject p, Vector shokki) { PaineaaltoOsuu(p, shokki, rajahdys, 25.0); }; 
    1863             Add(rajahdys); 
    1864             rajahdys.Force = 25; 
    1865             rajahdys.Speed = 1000; 
    1866  
    1867             ammus.Destroy(); // ei voi taata tapahtuuko tämä "heti". Siksi tarvitaan alkuun tarkistus, että onko ammus tuhoutumassa. 
    1868             if (!(kohde is Pelaaja)) return; 
    1869             Pelaaja pelaaja = (Pelaaja)kohde; 
    1870             if (pelaaja.DamageResistance == true) 
    1871             { 
    1872                 pelaaja.HPLaskuri.Value -= 7; 
    1873             } 
    1874             else if (pelaaja.DamageVulnerability == true) 
    1875             { 
    1876                 pelaaja.HPLaskuri.Value -= 22; 
    1877             } 
    1878             else 
    1879             { 
    1880                 pelaaja.HPLaskuri.Value -= 15; 
    1881             } 
    1882         } 
    1883     } 
    1884  
    18851796    void PaineaaltoOsuu(IPhysicsObject kohde, Vector shokki, Explosion e, double damagenMaara) 
    18861797    { 
     
    18911802        if (p.DamageResistance == true) 
    18921803        { 
    1893             p.HPLaskuri.Value -= damagenMaara / 2; 
     1804            p.HPLaskuri.Value -= damagenMaara * 0.5; 
    18941805        } 
    18951806        else if (p.DamageVulnerability == true) 
     
    19871898        if (ammus.IsDestroying) return false; 
    19881899        if (kohde.Tag.ToString() != "ammus" && kohde.Tag.ToString() != "") ammus.Destroy(); 
     1900        return true; 
     1901    } 
     1902 
     1903    bool AmmusOsuuPelaajaan(PhysicsObject ammus, PhysicsObject kohde) 
     1904    { 
    19891905        if (kohde is Pelaaja) 
    19901906        { 
     
    19971913    } 
    19981914 
    1999     void LisaaDamage(PhysicsObject ammus, PhysicsObject kohde, int dmg, string ase) 
     1915    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde, double dmg, string aseenTag) 
    20001916    { 
    20011917        if (AmmusVoiOsua(ammus, kohde)) 
    20021918        { 
    2003             Pelaaja p = (Pelaaja)kohde; 
    2004             if (p.DamageResistance == true) 
    2005             { 
    2006                 if (ase == "magnum") { p.HPLaskuri.Value -= dmg * 0.75; } 
    2007                 else { p.HPLaskuri.Value -= dmg * 0.5; } 
    2008             } 
    2009             else if (p.DamageVulnerability == true) 
    2010             { 
    2011                 if (ase == "magnum") { p.HPLaskuri.Value -= dmg * 2; } 
    2012                 else { p.HPLaskuri.Value -= dmg * 1.5; } 
    2013             } 
    2014             else 
    2015             { 
    2016                 p.HPLaskuri.Value -= dmg; 
    2017             } 
    2018         } 
    2019     } 
    2020  
    2021     void FlareOsui(PhysicsObject ammus, PhysicsObject kohde) 
    2022     { 
    2023         if (AmmusVoiOsua(ammus, kohde)) 
    2024         { 
    2025             Pelaaja p = (Pelaaja)kohde; 
    2026  
    2027                 GameObject liekki = new GameObject(40, 40); 
    2028                 liekki.Color = new Color(Color.Orange, 100); 
    2029                 liekki.Shape = Shape.FromImage(norsu); 
    2030  
    2031                 p.Add(liekki); 
    2032                 Timer.SingleShot(1.0, delegate { p.Remove(liekki); }); 
    2033  
    2034                 if (p.DamageResistance == true) { p.HPLaskuri.Value -= 7; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 22; } else { p.HPLaskuri.Value -= 15; } 
    2035                 Timer.SingleShot(0.5, delegate { if (p.DamageResistance == true) { p.HPLaskuri.Value -= 2; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 7; } else { p.HPLaskuri.Value -= 5; } 
    2036                 Timer.SingleShot(0.5, delegate { if (p.DamageResistance == true) { p.HPLaskuri.Value -= 2; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 7; } else { p.HPLaskuri.Value -= 5; } }); 
    2037                 }); 
    2038              
    2039         } 
    2040     } 
    2041  
    2042     void FlareOsui2(PhysicsObject ammus, PhysicsObject kohde) 
    2043     { 
    2044         if (AmmusVoiOsua(ammus, kohde)) 
    2045         { 
    2046             Pelaaja p = (Pelaaja)kohde; 
    2047  
    2048                 GameObject liekki = new GameObject(40, 40); 
    2049                 liekki.Color = new Color(Color.Orange, 100); 
    2050                 liekki.Shape = Shape.FromImage(norsu); 
    2051  
    2052                 p.Add(liekki); 
    2053                 Timer.SingleShot(2.0, delegate { p.Remove(liekki); }); 
    2054  
    2055                 if (p.DamageResistance == true) { p.HPLaskuri.Value -= 10; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 30; } else { p.HPLaskuri.Value -= 20; } 
    2056                 Timer.SingleShot(0.5, delegate 
    2057                 { 
    2058                     if (p.DamageResistance == true) { p.HPLaskuri.Value -= 2; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 7; } else { p.HPLaskuri.Value -= 5; } 
    2059                     Timer.SingleShot(0.5, delegate 
    2060                     { 
    2061                         if (p.DamageResistance == true) { p.HPLaskuri.Value -= 2; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 7; } else { p.HPLaskuri.Value -= 5; } 
    2062                         Timer.SingleShot(0.5, delegate 
    2063                         { 
    2064                             if (p.DamageResistance == true) { p.HPLaskuri.Value -= 2; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 7; } else { p.HPLaskuri.Value -= 5; } 
    2065                             Timer.SingleShot(0.5, delegate 
    2066                             { 
    2067                                 if (p.DamageResistance == true) { p.HPLaskuri.Value -= 2; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 7; } else { p.HPLaskuri.Value -= 5; } 
    2068                             }); 
    2069                         }); 
    2070                     }); 
    2071                 }); 
    2072              
    2073         } 
    2074     } 
    2075     void FlareOsui3(PhysicsObject ammus, PhysicsObject kohde) 
    2076     { 
    2077         if (AmmusVoiOsua(ammus, kohde)) 
    2078         { 
    2079             Pelaaja p = (Pelaaja)kohde; 
    2080  
    2081                 GameObject liekki = new GameObject(40, 40); 
    2082                 liekki.Color = new Color(Color.Orange, 100); 
    2083                 liekki.Shape = Shape.FromImage(norsu); 
    2084  
    2085                 p.Add(liekki); 
    2086                 Timer.SingleShot(2.5, delegate { p.Remove(liekki); }); 
    2087  
    2088                 if (p.DamageResistance == true) { p.HPLaskuri.Value -= 15; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 45; } else { p.HPLaskuri.Value -= 30; } 
    2089                  
    2090                 Timer.SingleShot(0.5, delegate 
    2091                 { 
    2092                     if (p.DamageResistance == true) { p.HPLaskuri.Value -= 3; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 10; } else { p.HPLaskuri.Value -= 7; } 
    2093                     Timer.SingleShot(0.5, delegate 
    2094                     { 
    2095                         if (p.DamageResistance == true) { p.HPLaskuri.Value -= 3; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 10; } else { p.HPLaskuri.Value -= 7; } 
    2096                         Timer.SingleShot(0.5, delegate 
    2097                         { 
    2098                             if (p.DamageResistance == true) { p.HPLaskuri.Value -= 3; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 10; } else { p.HPLaskuri.Value -= 7; } 
    2099                             Timer.SingleShot(0.5, delegate 
    2100                             { 
    2101                                 if (p.DamageResistance == true) { p.HPLaskuri.Value -= 3; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 10; } else { p.HPLaskuri.Value -= 7; } 
    2102                                 Timer.SingleShot(0.5, delegate 
    2103                                 { 
    2104                                     if (p.DamageResistance == true) { p.HPLaskuri.Value -= 3; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 10; } else { p.HPLaskuri.Value -= 7; } 
    2105                                 }); 
    2106                             }); 
    2107                         }); 
    2108                     }); 
    2109                 }); 
    2110              
    2111         } 
    2112     } 
    2113  
    2114     void FlareOsui4(PhysicsObject ammus, PhysicsObject kohde) 
    2115     { 
    2116         if (AmmusVoiOsua(ammus, kohde)) 
    2117         { 
    2118             Pelaaja p = (Pelaaja)kohde; 
    2119  
    2120                 GameObject liekki = new GameObject(40, 40); 
    2121                 liekki.Color = new Color(Color.Red, 100); 
    2122                 liekki.Shape = Shape.FromImage(norsu); 
    2123  
    2124                 p.Add(liekki); 
    2125                 Timer.SingleShot(5.0, delegate { p.Remove(liekki); }); 
    2126  
    2127                 if (p.DamageResistance == true) { p.HPLaskuri.Value -= 17; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 52; } else { p.HPLaskuri.Value -= 35; } 
    2128                  
    2129                 Timer.SingleShot(0.5, delegate 
    2130                 { 
    2131                     if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2132                     Timer.SingleShot(0.5, delegate 
    2133                     { 
    2134                         if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2135                         Timer.SingleShot(0.5, delegate 
    2136                         { 
    2137                             if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2138                             Timer.SingleShot(0.5, delegate 
    2139                             { 
    2140                                 if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2141                                 Timer.SingleShot(0.5, delegate 
    2142                                 { 
    2143                                     if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2144                                     Timer.SingleShot(0.5, delegate 
    2145                                     { 
    2146                                         if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2147                                         Timer.SingleShot(0.5, delegate 
    2148                                         { 
    2149                                             if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2150                                             Timer.SingleShot(0.5, delegate 
    2151                                             { 
    2152                                                 if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2153                                                 Timer.SingleShot(0.5, delegate 
    2154                                                 { 
    2155                                                     if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2156                                                     Timer.SingleShot(0.5, delegate 
    2157                                                     { 
    2158                                                         if (p.DamageResistance == true) { p.HPLaskuri.Value -= 5; } else if (p.DamageVulnerability == true) { p.HPLaskuri.Value -= 15; } else { p.HPLaskuri.Value -= 10; } 
    2159                                                     }); 
    2160                                                 }); 
    2161                                             }); 
    2162                                         }); 
    2163                                     }); 
    2164                                 }); 
    2165                             }); 
    2166                         }); 
    2167                     }); 
    2168                 }); 
    2169              
    2170         } 
     1919            if (aseenTag == "Raketinheitin") 
     1920            { 
     1921                LuoRajahdys(ammus, 40, 75, aseenTag); 
     1922            } 
     1923            else if (aseenTag == "Raketinheitin Lv. 2") 
     1924            { 
     1925                LuoRajahdys(ammus, 50, 75, aseenTag); 
     1926            } 
     1927            else if (aseenTag == "Raketinheitin Lv. 3") 
     1928            { 
     1929                LuoRajahdys(ammus, 25, 75, aseenTag); 
     1930            } 
     1931            else if (aseenTag == "Raketinheitin Lv. 4") 
     1932            { 
     1933                LuoRajahdys(ammus, 25, 75, aseenTag); 
     1934            } 
     1935            else if (aseenTag == "Sinko") 
     1936            { 
     1937                LuoRajahdys(ammus, 75, 100, aseenTag); 
     1938            } 
     1939            else if (aseenTag == "Sinko Lv. X") 
     1940            { 
     1941                LuoRajahdys(ammus, 90, 125, aseenTag); 
     1942            } 
     1943 
     1944            if (AmmusOsuuPelaajaan(ammus, kohde)) 
     1945            { 
     1946                Pelaaja p = (Pelaaja)kohde; 
     1947                LisaaDamage(p, dmg, aseenTag); 
     1948 
     1949                // Yksinpeli aseet 
     1950                if (aseenTag == "Valopistooli") 
     1951                { 
     1952                    LuoLiekki(p, 5, 2, 0.5, aseenTag, Color.Orange); 
     1953                } 
     1954                else if (aseenTag == "Valopistooli Lv. 2") 
     1955                { 
     1956                    LuoLiekki(p, 5, 4, 0.5, aseenTag, Color.Orange); 
     1957                } 
     1958                else if (aseenTag == "Valopistooli Lv. 3") 
     1959                { 
     1960                    LuoLiekki(p, 7, 5, 0.5, aseenTag, Color.Orange); 
     1961                } 
     1962                else if (aseenTag == "Valopistooli Lv. 4") 
     1963                { 
     1964                    LuoLiekki(p, 10, 10, 0.5, aseenTag, Color.Red); 
     1965                } 
     1966                else if (aseenTag == "Räjähtävä valopistooli") 
     1967                { 
     1968 
     1969                } 
     1970                else if (aseenTag == "Räjähtävä valopistooli Lv. X") 
     1971                { 
     1972 
     1973                } 
     1974            } 
     1975        } 
     1976    } 
     1977 
     1978    void LisaaDamage(Pelaaja p, double dmg, string aseenTag) 
     1979    { 
     1980        if (p.DamageResistance == true) 
     1981        { 
     1982            if (aseenTag.Length >= 6 && aseenTag.Substring(0, 6) == "Magnum" || aseenTag.Length >= 9 && aseenTag.Substring(0, 9) == "Revolveri") { p.HPLaskuri.Value -= dmg * 0.75; } 
     1983            else { p.HPLaskuri.Value -= dmg * 0.5; } 
     1984        } 
     1985        else if (p.DamageVulnerability == true) 
     1986        { 
     1987            if (aseenTag.Length >= 6 && aseenTag.Substring(0, 6) == "Magnum" || aseenTag.Length >= 9 && aseenTag.Substring(0, 9) == "Revolveri") { p.HPLaskuri.Value -= dmg * 2; } 
     1988            else { p.HPLaskuri.Value -= dmg * 1.5; } 
     1989        } 
     1990        else 
     1991        { 
     1992            p.HPLaskuri.Value -= dmg; 
     1993        } 
     1994    } 
     1995 
     1996    void LuoRajahdys(PhysicsObject ammus, double dmg, double radius, string aseenTag) 
     1997    { 
     1998        Explosion rajahdys = new Explosion(radius); 
     1999        rajahdys.Position = ammus.Position; 
     2000        rajahdys.ShockwaveReachesObject += delegate(IPhysicsObject p, Vector shokki) { PaineaaltoOsui(p, shokki, rajahdys, dmg, aseenTag); }; 
     2001        Add(rajahdys); 
     2002        rajahdys.Force = 25; 
     2003        rajahdys.Speed = 1000; 
     2004    } 
     2005 
     2006    void PaineaaltoOsui(IPhysicsObject kohde, Vector shokki, Explosion e, double dmg, string aseenTag) 
     2007    { 
     2008        if (!(kohde is Pelaaja)) return; 
     2009        Pelaaja p = (Pelaaja)kohde; 
     2010        if (p.ViimeisinRajahdys == e) return; 
     2011        p.ViimeisinRajahdys = e; 
     2012        LisaaDamage(p, dmg, aseenTag); 
     2013    } 
     2014 
     2015    void LuoLiekki(Pelaaja pelaaja, double dmg, int dmgticks, double tickinterval, string aseenTag, Color vari) 
     2016    { 
     2017        Timer ajastin = new Timer(); 
     2018        ajastin.Interval = tickinterval; 
     2019        ajastin.Timeout += delegate { LisaaDamage(pelaaja, dmg, aseenTag); }; 
     2020        ajastin.Start(dmgticks); 
     2021 
     2022        GameObject liekki = new GameObject(40, 40); 
     2023        liekki.Color = new Color(vari, 100); 
     2024        liekki.Shape = Shape.FromImage(norsu); 
     2025        pelaaja.Add(liekki); 
     2026        Timer.SingleShot(tickinterval * dmgticks, delegate { pelaaja.Remove(liekki); }); 
    21712027    } 
    21722028 
     
    21992055            { 
    22002056                pelaaja.HPLaskuri.Value -= 40; 
    2201             } 
    2202         } 
    2203     } 
    2204  
    2205     void SinkoOsui(PhysicsObject ammus, PhysicsObject kohde) 
    2206     { 
    2207         if (ammus.IsDestroying) return; 
    2208         if (kohde.Tag.ToString() != "") 
    2209         { 
    2210             Explosion rajahdys = new Explosion(100); 
    2211             rajahdys.Position = ammus.Position; 
    2212             rajahdys.ShockwaveReachesObject += delegate(IPhysicsObject p, Vector shokki) { PaineaaltoOsuu(p, shokki, rajahdys, 75.0); }; 
    2213             Add(rajahdys); 
    2214             rajahdys.Force = 25; 
    2215             rajahdys.Speed = 1000; 
    2216  
    2217             ammus.Destroy(); // ei voi taata tapahtuuko tämä "heti". Siksi tarvitaan alkuun tarkistus, että onko ammus tuhoutumassa. 
    2218             if (!(kohde is Pelaaja)) return; 
    2219             Pelaaja pelaaja = (Pelaaja)kohde; 
    2220             if (pelaaja.DamageResistance == true) 
    2221             { 
    2222                 pelaaja.HPLaskuri.Value -= 25; 
    2223             } 
    2224             else if (pelaaja.DamageVulnerability == true) 
    2225             { 
    2226                 pelaaja.HPLaskuri.Value -= 75; 
    2227             } 
    2228             else 
    2229             { 
    2230                 pelaaja.HPLaskuri.Value -= 50; 
    22312057            } 
    22322058        } 
     
    22942120    } 
    22952121 
    2296     void SinkoXOsui(PhysicsObject ammus, PhysicsObject kohde) 
    2297     { 
    2298         if (ammus.IsDestroying) return; 
    2299         if (kohde.Tag.ToString() != "") 
    2300         { 
    2301             Explosion rajahdys = new Explosion(125); 
    2302             rajahdys.Position = ammus.Position; 
    2303             rajahdys.ShockwaveReachesObject += delegate(IPhysicsObject p, Vector shokki) { PaineaaltoOsuu(p, shokki, rajahdys, 90.0); }; 
    2304             Add(rajahdys); 
    2305             rajahdys.Force = 25; 
    2306             rajahdys.Speed = 1000; 
    2307  
    2308             ammus.Destroy(); // ei voi taata tapahtuuko tämä "heti". Siksi tarvitaan alkuun tarkistus, että onko ammus tuhoutumassa. 
    2309             if (!(kohde is Pelaaja)) return; 
    2310             Pelaaja pelaaja = (Pelaaja)kohde; 
    2311             if (pelaaja.DamageResistance == true) 
    2312             { 
    2313                 pelaaja.HPLaskuri.Value -= 35; 
    2314             } 
    2315             else if (pelaaja.DamageVulnerability == true) 
    2316             { 
    2317                 pelaaja.HPLaskuri.Value -= 105; 
    2318             } 
    2319             else 
    2320             { 
    2321                 pelaaja.HPLaskuri.Value -= 70; 
    2322             } 
    2323         } 
    2324     } 
    2325  
    23262122    void ExpFlareXOsui(PhysicsObject ammus, PhysicsObject kohde) 
    23272123    { 
     
    24672263            ase = new AssaultRifle(39, 13); 
    24682264            ase.FireRate = 7; 
    2469             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 10, "kivaari"); }; 
     2265            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 10, aseenTag); }; 
    24702266            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    24712267            ase.Tag = "Kivääri"; 
     
    24772273            ase = new AssaultRifle(17, 12); 
    24782274            ase.FireRate = 1.2; 
    2479             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 35, "magnum"); }; 
     2275            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 35, aseenTag); }; 
    24802276            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    24812277            ase.Tag = "Magnum"; 
     
    24892285            ase = new AssaultRifle(42, 10); 
    24902286            ase.FireRate = 0.75; 
    2491             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 13, "haulikko"); }; 
     2287            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 13, aseenTag); }; 
    24922288            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.4); 
    24932289            ase.Tag = "Haulikko"; 
     
    24992295            ase = new AssaultRifle(42, 11); 
    25002296            ase.FireRate = 0.4; 
    2501             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 80, "sniper"); }; 
     2297            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 80, aseenTag); }; 
    25022298            ase.Power.Value = 400; 
    25032299            ase.Power.DefaultValue = 400; 
     
    25162312            ase.Image = kranaatinheittimenkuva; 
    25172313        } 
     2314 
    25182315        if (aseenTag == "Raketinheitin") 
    25192316        { 
    25202317            ase = new AssaultRifle(48, 15); 
    25212318            ase.FireRate = 0.5; 
    2522             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { RakettiOsui(ammus, kohde); }; 
     2319            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 20, aseenTag); }; 
    25232320            ase.Power.Value = 125; 
    25242321            ase.Power.DefaultValue = 125; 
     
    25322329            ase = new AssaultRifle(16, 11); 
    25332330            ase.FireRate = 2; 
    2534             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 15, "pistooli"); }; 
     2331            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    25352332            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    25362333            ase.Tag = "Pistooli"; 
     
    25442341            ase = new AssaultRifle(39, 16); 
    25452342            ase.FireRate = 9; 
    2546             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 15, "kivaari"); }; 
     2343            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    25472344            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    25482345            ase.Tag = "Kivääri Lv. 2"; 
     
    25532350            ase = new AssaultRifle(17, 12); 
    25542351            ase.FireRate = 1.5; 
    2555             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 40, "magnum"); }; 
     2352            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 40, aseenTag); }; 
    25562353            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    25572354            ase.Tag = "Magnum Lv. 2"; 
     
    25652362            ase = new AssaultRifle(42, 12); 
    25662363            ase.FireRate = 1.0; 
    2567             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 15, "haulikko"); }; 
     2364            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    25682365            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.5); 
    25692366            ase.Tag = "Haulikko Lv. 2"; 
     
    25752372            ase = new AssaultRifle(42, 11); 
    25762373            ase.FireRate = 0.75; 
    2577             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 90, "sniper"); }; 
     2374            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 90, aseenTag); }; 
    25782375            ase.Power.Value = 400; 
    25792376            ase.Power.DefaultValue = 400; 
     
    25962393            ase = new AssaultRifle(48, 15); 
    25972394            ase.FireRate = 0.75; 
    2598             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { RakettiOsui2(ammus, kohde); }; 
     2395            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 35, aseenTag); }; ; 
    25992396            ase.Power.Value = 165; 
    26002397            ase.Power.DefaultValue = 165; 
     
    26082405            ase = new AssaultRifle(17, 11); 
    26092406            ase.FireRate = 2; 
    2610             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 25, "pistooli"); }; ; 
     2407            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 25, aseenTag); }; ; 
    26112408            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    26122409            ase.Tag = "Pistooli Lv. 2"; 
     
    26192416            ase = new AssaultRifle(39, 16); 
    26202417            ase.FireRate = 10; 
    2621             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 20, "kivaari"); }; 
     2418            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 20, aseenTag); }; 
    26222419            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    26232420            ase.Tag = "Kivääri Lv. 3"; 
     
    26282425            ase = new AssaultRifle(17, 12); 
    26292426            ase.FireRate = 2.0; 
    2630             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 50, "magnum"); }; 
     2427            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 50, aseenTag); }; 
    26312428            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    26322429            ase.Tag = "Magnum Lv. 3"; 
     
    26402437            ase = new AssaultRifle(38, 12); 
    26412438            ase.FireRate = 2.0; 
    2642             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 15, "haulikko"); }; 
     2439            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    26432440            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.75); 
    26442441            ase.Tag = "Haulikko Lv. 3"; 
     
    26502447            ase = new AssaultRifle(45, 12); 
    26512448            ase.FireRate = 4.0; 
    2652             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 40, "sniper"); }; 
     2449            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 40, aseenTag); }; 
    26532450            ase.Power.Value = 400; 
    26542451            ase.Power.DefaultValue = 400; 
     
    26722469            ase = new AssaultRifle(48, 22.5); 
    26732470            ase.FireRate = 4.0; 
    2674             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { RakettiOsui3(ammus, kohde); }; 
     2471            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; ; 
    26752472            ase.Power.Value = 125; 
    26762473            ase.Power.DefaultValue = 125; 
     
    26842481            ase = new AssaultRifle(20, 13); 
    26852482            ase.FireRate = 2; 
    2686             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 25, "pistooli"); }; ; 
     2483            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 25, aseenTag); }; ; 
    26872484            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    26882485            ase.Tag = "Pistooli Lv. 3"; 
     
    26972494            ase = new AssaultRifle(39, 16); 
    26982495            ase.FireRate = 20; 
    2699             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 20, "kivaari"); }; 
     2496            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 20, aseenTag); }; 
    27002497            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    27012498            ase.Tag = "Kivääri Lv. 4"; 
     
    27072504            ase = new AssaultRifle(17, 12); 
    27082505            ase.FireRate = 2.5; 
    2709             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 100, "magnum"); }; 
     2506            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 100, aseenTag); }; 
    27102507            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    27112508            ase.Tag = "Magnum Lv. 4"; 
     
    27192516            ase = new AssaultRifle(38, 12); 
    27202517            ase.FireRate = 4.0; 
    2721             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 15, "haulikko"); }; 
     2518            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    27222519            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(2.0); 
    27232520            ase.Tag = "Haulikko Lv. 4"; 
     
    27292526            ase = new AssaultRifle(45, 12); 
    27302527            ase.FireRate = 5.0; 
    2731             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 75, "sniper"); }; 
     2528            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 75, aseenTag); }; 
    27322529            ase.Power.Value = 400; 
    27332530            ase.Power.DefaultValue = 400; 
     
    27502547            ase = new AssaultRifle(48, 22.5); 
    27512548            ase.FireRate = 8.0; 
    2752             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { RakettiOsui3(ammus, kohde); }; 
     2549            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; ; 
    27532550            ase.Power.Value = 125; 
    27542551            ase.Power.DefaultValue = 125; 
     
    27622559            ase = new AssaultRifle(20, 13); 
    27632560            ase.FireRate = 4; 
    2764             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 25, "pistooli"); }; ; 
     2561            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 25, aseenTag); }; ; 
    27652562            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    27662563            ase.Tag = "Pistooli Lv. 4"; 
     
    27752572            ase = new AssaultRifle(24, 24); 
    27762573            ase.FireRate = 2; 
    2777             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 10, "miekka"); }; 
     2574            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 10, aseenTag); }; 
    27782575            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.05); 
    27792576            ase.Tag = "Miekka"; 
     
    27872584            ase = new AssaultRifle(24, 24); 
    27882585            ase.FireRate = 2.5; 
    2789             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 20, "miekka"); }; 
     2586            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 20, aseenTag); }; 
    27902587            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.05); 
    27912588            ase.Tag = "Miekka Lv. 2"; 
     
    27992596            ase = new AssaultRifle(24, 24); 
    28002597            ase.FireRate = 3; 
    2801             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 40, "miekka"); }; 
     2598            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 40, aseenTag); }; 
    28022599            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.05); 
    28032600            ase.Tag = "Miekka Lv. 3"; 
     
    28112608            ase = new AssaultRifle(24, 24); 
    28122609            ase.FireRate = 5; 
    2813             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 100, "miekka"); }; 
     2610            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 100, aseenTag); }; 
    28142611            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.05); 
    28152612            ase.Tag = "Miekka Lv. 4"; 
     
    28232620            ase = new AssaultRifle(18, 10); 
    28242621            ase.FireRate = 0.75; 
    2825             ase.ProjectileCollision = FlareOsui; 
     2622            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    28262623            ase.Power.Value = 300; 
    28272624            ase.Power.DefaultValue = 300; 
     
    28372634            ase = new AssaultRifle(18, 10); 
    28382635            ase.FireRate = 1; 
    2839             ase.ProjectileCollision = FlareOsui2; 
     2636            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 20, aseenTag); }; 
    28402637            ase.Power.Value = 300; 
    28412638            ase.Power.DefaultValue = 300; 
     
    28512648            ase = new AssaultRifle(18, 10); 
    28522649            ase.FireRate = 1.2; 
    2853             ase.ProjectileCollision = FlareOsui3; 
     2650            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 30, aseenTag); }; 
    28542651            ase.Power.Value = 300; 
    28552652            ase.Power.DefaultValue = 300; 
     
    28652662            ase = new AssaultRifle(18, 10); 
    28662663            ase.FireRate = 1.5; 
    2867             ase.ProjectileCollision = FlareOsui4; 
     2664            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 35, aseenTag); }; 
    28682665            ase.Power.Value = 300; 
    28692666            ase.Power.DefaultValue = 300; 
     
    28812678            ase = new AssaultRifle(39, 13); 
    28822679            ase.FireRate = 4; 
    2883             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 15, "kivaari"); }; 
     2680            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    28842681            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    28852682            ase.Tag = "Sarjatulikivääri"; 
     
    28912688            ase = new AssaultRifle(17, 12); 
    28922689            ase.FireRate = 3.0; 
    2893             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 40, "magnum"); }; 
     2690            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 40, aseenTag); }; 
    28942691            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    28952692            ase.Tag = "Revolveri"; 
     
    29032700            ase = new AssaultRifle(42, 10); 
    29042701            ase.FireRate = 1.5; 
    2905             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 13, "haulikko"); }; 
     2702            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 13, aseenTag); }; 
    29062703            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.4); 
    29072704            ase.Tag = "Katkaistu haulikko"; 
     
    29132710            ase = new AssaultRifle(42, 11); 
    29142711            ase.FireRate = 0.5; 
    2915             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 200, "sniper"); }; 
     2712            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 200, aseenTag); }; 
    29162713            ase.Power.Value = 400; 
    29172714            ase.Power.DefaultValue = 400; 
     
    29372734            ase = new AssaultRifle(48, 15); 
    29382735            ase.FireRate = 0.75; 
    2939             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { SinkoOsui(ammus, kohde); }; 
     2736            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 50, aseenTag); }; 
    29402737            ase.Power.Value = 165; 
    29412738            ase.Power.DefaultValue = 165; 
     
    29492746            ase = new AssaultRifle(16, 11); 
    29502747            ase.FireRate = 17; 
    2951             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 15, "pistooli"); }; 
     2748            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    29522749            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    29532750            ase.Tag = "Konepistooli"; 
     
    29752772            ase = new AssaultRifle(39, 13); 
    29762773            ase.FireRate = 6; 
    2977             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 30, "kivaari"); }; 
     2774            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 30, aseenTag); }; 
    29782775            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    29792776            ase.Tag = "Sarjatulikivääri Lv. X"; 
     
    29852782            ase = new AssaultRifle(17, 12); 
    29862783            ase.FireRate = 6; 
    2987             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 60, "magnum"); }; 
     2784            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 60, aseenTag); }; 
    29882785            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    29892786            ase.Tag = "Revolveri Lv. X"; 
     
    29972794            ase = new AssaultRifle(42, 10); 
    29982795            ase.FireRate = 2; 
    2999             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 15, "haulikko"); }; 
     2796            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 15, aseenTag); }; 
    30002797            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(0.4); 
    30012798            ase.Tag = "Katkaistu haulikko Lv. X"; 
     
    30072804            ase = new AssaultRifle(42, 11); 
    30082805            ase.FireRate = 0.8; 
    3009             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 1000, "sniper"); }; 
     2806            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 1000, aseenTag); }; 
    30102807            ase.Power.Value = 400; 
    30112808            ase.Power.DefaultValue = 400; 
     
    30312828            ase = new AssaultRifle(48, 15); 
    30322829            ase.FireRate = 1.5; 
    3033             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { SinkoXOsui(ammus, kohde); }; 
     2830            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 70, aseenTag); }; 
    30342831            ase.Power.Value = 165; 
    30352832            ase.Power.DefaultValue = 165; 
     
    30432840            ase = new AssaultRifle(16, 11); 
    30442841            ase.FireRate = 34; 
    3045             ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { LisaaDamage(ammus, kohde, 17, "pistooli"); }; 
     2842            ase.ProjectileCollision = delegate(PhysicsObject ammus, PhysicsObject kohde) { AmmusOsui(ammus, kohde, 17, aseenTag); }; 
    30462843            ase.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    30472844            ase.Tag = "Konepistooli Lv. X"; 
     
    36683465        pelaaja.Add(kilpi); 
    36693466        pelaaja.DamageVulnerability = true; 
    3670         if (pelaaja.DamageResistance == true) 
    3671         { 
    3672             kilpi.IsVisible = false; 
    3673         } 
    36743467        Timer.SingleShot(5.0, delegate { pelaaja.DamageVulnerability = false; pelaaja.Remove(kilpi); }); 
    36753468    } 
     
    53365129        } 
    53375130 
    5338         if (hahmo.Weapon.Tag.ToString() == "Kranaatinheitin") 
     5131        if (aseenTag == "Kranaatinheitin") 
    53395132        { 
    53405133            ammus.Shape = Shape.Circle; 
     
    53505143            Timer.SingleShot(0.2, delegate { ammus.CollisionIgnorer = null; }); 
    53515144        } 
    5352         if (hahmo.Weapon.Tag.ToString() == "Kranaatinheitin Lv. 2") 
     5145        if (aseenTag == "Kranaatinheitin Lv. 2") 
    53535146        { 
    53545147            ammus.Shape = Shape.Circle; 
     
    53645157            Timer.SingleShot(0.2, delegate { ammus.CollisionIgnorer = null; }); 
    53655158        } 
    5366         if (hahmo.Weapon.Tag.ToString() == "Kranaatinheitin Lv. 3") 
     5159        if (aseenTag == "Kranaatinheitin Lv. 3") 
    53675160        { 
    53685161            ammus.Shape = Shape.Circle; 
     
    53995192            Add(ammus2); 
    54005193        } 
    5401         if (hahmo.Weapon.Tag.ToString() == "Kranaatinheitin Lv. 4") 
     5194        if (aseenTag == "Kranaatinheitin Lv. 4") 
    54025195        { 
    54035196            ammus.Shape = Shape.Circle; 
     
    54355228        } 
    54365229 
    5437         if ((string)hahmo.Weapon.Tag == "Raketinheitin") 
     5230        if (aseenTag == "Raketinheitin") 
    54385231        { 
    54395232            ammus.Image = raketinkuva; 
     
    54425235            Timer.SingleShot(0.1, delegate { ammus.CollisionIgnorer = null; }); 
    54435236        } 
    5444         if ((string)hahmo.Weapon.Tag == "Raketinheitin Lv. 2") 
     5237        if (aseenTag == "Raketinheitin Lv. 2") 
    54455238        { 
    54465239            ammus.Image = raketinkuva2; 
     
    54495242            Timer.SingleShot(0.1, delegate { ammus.CollisionIgnorer = null; }); 
    54505243        } 
    5451         if ((string)hahmo.Weapon.Tag == "Raketinheitin Lv. 3") 
     5244        if (aseenTag == "Raketinheitin Lv. 3") 
    54525245        { 
    54535246            ammus.Image = raketinkuva3; 
     
    54565249            Timer.SingleShot(0.1, delegate { ammus.CollisionIgnorer = null; }); 
    54575250        } 
    5458         if ((string)hahmo.Weapon.Tag == "Raketinheitin Lv. 4") 
     5251        if (aseenTag == "Raketinheitin Lv. 4") 
    54595252        { 
    54605253            ammus.Image = raketinkuva4; 
     
    54645257        } 
    54655258 
    5466         if ((string)hahmo.Weapon.Tag == "Kivääri Lv. 3") 
     5259        if (aseenTag == "Kivääri Lv. 3") 
    54675260        { 
    54685261            ammus.Hit(new Vector(0, RandomGen.NextDouble(-10, 10))); 
    54695262        } 
    54705263 
    5471         if ((string)hahmo.Weapon.Tag == "Kivääri Lv. 4") 
     5264        if (aseenTag == "Kivääri Lv. 4") 
    54725265        { 
    54735266            ammus.Hit(new Vector(0, RandomGen.NextDouble(-20, 20))); 
    54745267        } 
    54755268 
    5476         if ((string)hahmo.Weapon.Tag == "Haulikko") 
     5269        if (aseenTag == "Haulikko") 
    54775270        { 
    54785271            for (int i = 0; i < 5; i++) 
     
    54905283                ammus2.IgnoresCollisionResponse = true; 
    54915284                ammus2.IgnoresExplosions = true; 
    5492                 AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 13, "haulikko"); }); 
     5285                AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 13, aseenTag); }); 
    54935286                Add(ammus2); 
    54945287            } 
    54955288        } 
    5496         if ((string)hahmo.Weapon.Tag == "Haulikko Lv. 2") 
     5289        if (aseenTag == "Haulikko Lv. 2") 
    54975290        { 
    54985291            for (int i = 0; i < 5; i++) 
     
    55105303                ammus2.IgnoresCollisionResponse = true; 
    55115304                ammus2.IgnoresExplosions = true; 
    5512                 AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 15, "haulikko"); }); 
     5305                AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 15, aseenTag); }); 
    55135306                Add(ammus2); 
    55145307            } 
    55155308        } 
    5516         if ((string)hahmo.Weapon.Tag == "Haulikko Lv. 3") 
     5309        if (aseenTag == "Haulikko Lv. 3") 
    55175310        { 
    55185311            for (int i = 0; i < 3; i++) 
     
    55305323                ammus2.IgnoresCollisionResponse = true; 
    55315324                ammus2.IgnoresExplosions = true; 
    5532                 AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 15, "haulikko"); }); 
     5325                AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 15, aseenTag); }); 
    55335326                Add(ammus2); 
    55345327            } 
    55355328        } 
    5536         if ((string)hahmo.Weapon.Tag == "Haulikko Lv. 4") 
     5329        if (aseenTag == "Haulikko Lv. 4") 
    55375330        { 
    55385331            for (int i = 0; i < 5; i++) 
     
    55505343                ammus2.IgnoresCollisionResponse = true; 
    55515344                ammus2.IgnoresExplosions = true; 
    5552                 AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 15, "haulikko"); }); 
     5345                AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 15, aseenTag); }); 
    55535346                Add(ammus2); 
    55545347            } 
    55555348        } 
    55565349 
    5557         if ((string)hahmo.Weapon.Tag == "Pistooli Lv. 3") 
     5350        if (aseenTag == "Pistooli Lv. 3") 
    55585351        { 
    55595352            PhysicsObject ammus2 = new PhysicsObject(ammus.Image); 
     
    55685361            ammus2.IgnoresCollisionResponse = true; 
    55695362            ammus2.IgnoresExplosions = true; 
    5570             AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 25, "pistooli"); }); 
     5363            AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 25, aseenTag); }); 
    55715364            Timer.SingleShot(0.1, delegate { Add(ammus2); });        
    55725365        } 
    55735366 
    5574         if ((string)hahmo.Weapon.Tag == "Pistooli Lv. 4") 
     5367        if (aseenTag == "Pistooli Lv. 4") 
    55755368        { 
    55765369            PhysicsObject ammus2 = new PhysicsObject(ammus.Image); 
     
    55855378            ammus2.IgnoresCollisionResponse = true; 
    55865379            ammus2.IgnoresExplosions = true; 
    5587             AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 25, "pistooli"); }); 
     5380            AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 25, aseenTag); }); 
    55885381            Timer.SingleShot(0.05, delegate { Add(ammus2); }); 
    55895382        } 
    55905383 
    5591         if ((string)hahmo.Weapon.Tag == "Valopistooli") 
     5384        if (aseenTag == "Valopistooli") 
    55925385        { 
    55935386            ammus.Image = flarekuva; 
     
    55995392            AddCollisionHandler(ammus, "poltettava taso", delegate(PhysicsObject o, PhysicsObject k) { PoltaTaso(k); }); 
    56005393        } 
    5601         if ((string)hahmo.Weapon.Tag == "Valopistooli Lv. 2") 
     5394        if (aseenTag == "Valopistooli Lv. 2") 
    56025395        { 
    56035396            ammus.Image = flarekuva2; 
     
    56085401            Timer.SingleShot(0.1, delegate { ammus.CollisionIgnorer = null; }); 
    56095402        } 
    5610         if ((string)hahmo.Weapon.Tag == "Valopistooli Lv. 3") 
     5403        if (aseenTag == "Valopistooli Lv. 3") 
    56115404        { 
    56125405            ammus.Image = flarekuva3; 
     
    56175410            Timer.SingleShot(0.1, delegate { ammus.CollisionIgnorer = null; }); 
    56185411        } 
    5619         if ((string)hahmo.Weapon.Tag == "Valopistooli Lv. 4") 
     5412        if (aseenTag == "Valopistooli Lv. 4") 
    56205413        { 
    56215414            ammus.Image = flarekuva4; 
     
    56445437        // Muunnetut aseet 
    56455438 
    5646         if ((string)hahmo.Weapon.Tag == "Sarjatulikivääri") 
     5439        if (aseenTag == "Sarjatulikivääri") 
    56475440        { 
    56485441            PhysicsObject ammus2 = new PhysicsObject(ammus.Image); 
     
    56575450            ammus2.IgnoresCollisionResponse = true; 
    56585451            ammus2.IgnoresExplosions = true; 
    5659             AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 15, "kivaari"); }); 
     5452            AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 15, aseenTag); }); 
    56605453 
    56615454            PhysicsObject ammus3 = new PhysicsObject(ammus.Image); 
     
    56705463            ammus3.IgnoresCollisionResponse = true; 
    56715464            ammus3.IgnoresExplosions = true; 
    5672             AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus3, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 15, "kivaari"); }); 
     5465            AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus3, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 15, aseenTag); }); 
    56735466 
    56745467            Timer.SingleShot(0.03, delegate { Add(ammus2); Timer.SingleShot(0.03, delegate { Add(ammus3); }); }); 
    56755468        } 
    56765469 
    5677         if ((string)hahmo.Weapon.Tag == "Revolveri") 
     5470        if (aseenTag == "Revolveri") 
    56785471        { 
    56795472            ammus.Hit(new Vector(0, RandomGen.NextDouble(-5, 5))); 
    56805473        } 
    56815474 
    5682         if ((string)hahmo.Weapon.Tag == "Katkaistu haulikko") 
     5475        if (aseenTag == "Katkaistu haulikko") 
    56835476        { 
    56845477            for (int i = 0; i < 7; i++) 
     
    56965489                ammus2.IgnoresCollisionResponse = true; 
    56975490                ammus2.IgnoresExplosions = true; 
    5698                 AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 13, "haulikko"); }); 
     5491                AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 13, aseenTag); }); 
    56995492                Add(ammus2); 
    57005493            } 
    57015494        } 
    57025495 
    5703         if ((string)hahmo.Weapon.Tag == "Sirpalekranaatinheitin") 
     5496        if (aseenTag == "Sirpalekranaatinheitin") 
    57045497        { 
    57055498            ammus.Shape = Shape.Circle; 
     
    57165509        } 
    57175510 
    5718         if ((string)hahmo.Weapon.Tag == "Sinko") 
     5511        if (aseenTag == "Sinko") 
    57195512        { 
    57205513            ammus.Image = raketinkuva; 
     
    57245517        } 
    57255518 
    5726         if ((string)hahmo.Weapon.Tag == "Konepistooli") 
     5519        if (aseenTag == "Konepistooli") 
    57275520        { 
    57285521            ammus.Hit(new Vector(0, RandomGen.NextDouble(-30, 30))); 
    57295522        } 
    57305523 
    5731         if ((string)hahmo.Weapon.Tag == "Räjähtävä valopistooli") 
     5524        if (aseenTag == "Räjähtävä valopistooli") 
    57325525        { 
    57335526            ammus.Image = flarekuva; 
     
    57395532        } 
    57405533 
    5741         if ((string)hahmo.Weapon.Tag == "Sarjatulikivääri Lv. X") 
     5534        if (aseenTag == "Sarjatulikivääri Lv. X") 
    57425535        { 
    57435536            PhysicsObject ammus2 = new PhysicsObject(ammus.Image); 
     
    57525545            ammus2.IgnoresCollisionResponse = true; 
    57535546            ammus2.IgnoresExplosions = true; 
    5754             AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 30, "kivaari"); }); 
     5547            AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 30, aseenTag); }); 
    57555548 
    57565549            PhysicsObject ammus3 = new PhysicsObject(ammus.Image); 
     
    57655558            ammus3.IgnoresCollisionResponse = true; 
    57665559            ammus3.IgnoresExplosions = true; 
    5767             AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus3, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 30, "kivaari"); }); 
     5560            AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus3, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 30, aseenTag); }); 
    57685561 
    57695562            PhysicsObject ammus4 = new PhysicsObject(ammus.Image); 
     
    57785571            ammus4.IgnoresCollisionResponse = true; 
    57795572            ammus4.IgnoresExplosions = true; 
    5780             AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus4, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 30, "kivaari"); }); 
     5573            AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus4, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 30, aseenTag); }); 
    57815574 
    57825575            Timer.SingleShot(0.02, delegate { Add(ammus2); ammus2.Hit(new Vector(0, RandomGen.NextDouble(-2, 2))); Timer.SingleShot(0.02, delegate { Add(ammus3); ammus3.Hit(new Vector(0, RandomGen.NextDouble(-2, 2))); Timer.SingleShot(0.02, delegate { Add(ammus4); ammus4.Hit(new Vector(0, RandomGen.NextDouble(-2, 2))); }); }); }); 
    57835576        } 
    57845577 
    5785         if ((string)hahmo.Weapon.Tag == "Revolveri Lv. X") 
     5578        if (aseenTag == "Revolveri Lv. X") 
    57865579        { 
    57875580            ammus.Hit(new Vector(0, RandomGen.NextDouble(-7, 7))); 
    57885581        } 
    57895582 
    5790         if ((string)hahmo.Weapon.Tag == "Katkaistu haulikko Lv. X") 
     5583        if (aseenTag == "Katkaistu haulikko Lv. X") 
    57915584        { 
    57925585            for (int i = 0; i < 14; i++) 
     
    58045597                ammus2.IgnoresCollisionResponse = true; 
    58055598                ammus2.IgnoresExplosions = true; 
    5806                 AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { LisaaDamage(t, p, 15, "haulikko"); }); 
     5599                AddCollisionHandler<PhysicsObject, PhysicsObject>(ammus2, delegate(PhysicsObject t, PhysicsObject p) { AmmusOsui(t, p, 15, aseenTag); }); 
    58075600                Add(ammus2); 
    58085601            } 
    58095602        } 
    58105603 
    5811         if ((string)hahmo.Weapon.Tag == "Sirpalekranaatinheitin Lv. X") 
     5604        if (aseenTag == "Sirpalekranaatinheitin Lv. X") 
    58125605        { 
    58135606            ammus.Shape = Shape.Circle; 
     
    58245617        } 
    58255618 
    5826         if ((string)hahmo.Weapon.Tag == "Sinko Lv. X") 
     5619        if (aseenTag == "Sinko Lv. X") 
    58275620        { 
    58285621            ammus.Image = raketinkuva; 
     
    58325625        } 
    58335626 
    5834         if ((string)hahmo.Weapon.Tag == "Konepistooli Lv. X") 
     5627        if (aseenTag == "Konepistooli Lv. X") 
    58355628        { 
    58365629            ammus.Hit(new Vector(0, RandomGen.NextDouble(-50, 50))); 
    58375630        } 
    58385631 
    5839         if ((string)hahmo.Weapon.Tag == "Räjähtävä valopistooli Lv. X") 
     5632        if (aseenTag == "Räjähtävä valopistooli Lv. X") 
    58405633        { 
    58415634            ammus.Image = flarekuva; 
Note: See TracChangeset for help on using the changeset viewer.