Ignore:
Timestamp:
2017-05-20 14:44:24 (2 years ago)
Author:
tesatapa
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/PaavoH/UltimateAdventure/UltimateAdventure/UltimateAdventure/UltimateAdventure.cs

    r8417 r8434  
    2020    DoubleMeter aani = new DoubleMeter(0, 0, 1); 
    2121    private IntMeter OxygenMeter; 
     22    List<string> destroybleThings = new List<string>(new string[]{ "PhysicsBlock", "moonstone", "turret", "snake", "silmamob","wizard","Ninja"}); 
    2223 
    2324    PlatformCharacter pelaaja1; 
     
    4041    Image WizardrWand = LoadImage("WizardingWandV3"); 
    4142    Image LogoImage = LoadImage("LogoV1"); 
     43    Image NinjaImage = LoadImage("Ninja"); 
     44    Image Ninjathings = LoadImage("NinjaThings"); 
     45    Image WizParticle = LoadImage("WizardingParticle"); 
     46    Image AchivementBottom = LoadImage("AchivementBottom"); 
    4247 
    4348    SoundEffect maaliAani = LoadSoundEffect("maali"); 
     
    4550    Animation Ruoskanimaatio; 
    4651 
     52    GameObject Logo; 
     53 
    4754    double aanenvoimakkuus = 0.1; 
    4855 
     
    5057    { 
    5158        Ruoskanimaatio = LoadAnimation("ruoska"); 
     59        DataSave tulos = null; 
     60        tulos = DataStorage.Load<DataSave>(tulos, "Options.xml"); 
     61        SmoothTextures = tulos.IsSmoothTex; 
     62        aani.Value = tulos.Volume; 
    5263        LuoAlkuValikko(); 
    5364 
     
    5869    { 
    5970        ClearAll(); 
    60         Logo(); 
    61         MultiSelectWindow alkuValikko = new MultiSelectWindow("UltimateAdventure", "Aloita peli", "Options", "Avaa valittu kenttä","Lopeta"); 
     71        LuoLogo(); 
     72        MultiSelectWindow alkuValikko = new MultiSelectWindow("UltimateAdventure", "Aloita peli", "Options", "Avaa valittu kenttä","Trophies","Lopeta"); 
    6273 
    6374        alkuValikko.AddItemHandler(0, AloitaPeli); 
    6475        alkuValikko.AddItemHandler(1, MenuOptions); 
    6576        alkuValikko.AddItemHandler(2, SelectLevel); 
    66         alkuValikko.AddItemHandler(3, Exit); 
     77        alkuValikko.AddItemHandler(3, Achivement); 
     78        alkuValikko.AddItemHandler(4, Exit); 
    6779 
    6880        Add(alkuValikko); 
     
    7991    } 
    8092 
    81     void Logo() 
    82     { 
    83         GameObject Logo = new GameObject(500,500); 
     93    void LuoLogo() 
     94    { 
     95        Logo = new GameObject(1000,120); 
     96        Logo.Y = Level.Top-100; 
    8497        Logo.Image = LogoImage; 
    8598        Add(Logo); 
     
    89102        StartLevel("kentta1"); 
    90103 
     104    } 
     105 
     106    void Achivement() 
     107    { 
     108        GameObject Achivementbottom = new GameObject(300,70); 
     109        Achivementbottom.Y = Level.Top - 100; 
     110        Achivementbottom.Image = AchivementBottom; 
     111        Add(Achivementbottom); 
     112        Logo.Destroy(); 
     113        BackButton(); 
     114        IsMouseVisible = true; 
    91115    } 
    92116    void StartLevel(String LevelName) 
     
    200224        PushButton BackNappain = new PushButton("Back"); 
    201225        BackNappain.Y = -300; 
     226        BackNappain.Clicked += SaveOptions; 
    202227        BackNappain.Clicked += LuoAlkuValikko; 
    203228 
    204229        Add(BackNappain); 
     230    } 
     231 
     232    void SaveOptions() 
     233    { 
     234        DataSave save = new DataSave(); 
     235        save.IsSmoothTex = SmoothTextures; 
     236        save.Volume = aani.Value; 
     237        DataStorage.Save<DataSave>(save, "Options.xml"); 
     238         
     239 
    205240    } 
    206241    void TeeSuljePeliOptions() 
     
    209244        SuljePeliOptions.Y = -300; 
    210245        SuljePeliOptions.Tag = "Options"; 
     246        SuljePeliOptions.Clicked += SaveOptions; 
    211247        SuljePeliOptions.Clicked += JatkaPelia; 
    212248 
     
    231267    void AddLevel(String LevelName) 
    232268    { 
    233         TileMap level = TileMap.FromLevelAsset(LevelName); 
     269         TileMap level = TileMap.FromLevelAsset(LevelName); 
    234270        level.SetTileMethod('#', LisaaSolid); 
    235271        level.SetTileMethod('&', LisaaBp); 
     
    245281        level.SetTileMethod('W', Wizard); 
    246282        level.SetTileMethod('C', Moonstone); 
     283        level.SetTileMethod('N', Ninja); 
    247284        level.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    248285        Level.CreateBorders(); 
     
    263300        taso.Position = paikka; 
    264301        taso.Image = Bpimage; 
     302        taso.Tag = "PhysicsBlock"; 
    265303        Add(taso); 
    266304    } 
     
    271309        Turret.Position = paikka; 
    272310        Turret.Image = TurretImage; 
     311        Turret.Tag = "turret"; 
    273312        Add(Turret); 
    274313 
     
    307346        Moonstone.Position = paikka; 
    308347        Moonstone.Image = MoonstoneImage; 
     348        Moonstone.Tag = "moonstone"; 
    309349        Add(Moonstone); 
    310350    } 
     
    318358        Add(Water, 2); 
    319359        Water.Tag = "Water"; 
     360 
     361        Timer ajastin = new Timer(); 
     362        ajastin.Interval = 0.05; 
     363        ajastin.Timeout += delegate 
     364        { 
     365            int palikoitaVasemmalla = GetObjectsAt(Water.Position + new Vector(-leveys, 0)).Count; 
     366            int palikoitaOikealla = GetObjectsAt(Water.Position + new Vector(leveys, 0)).Count; 
     367            int palikoitaAlhaalla = GetObjectsAt(Water.Position + new Vector(0, -korkeus)).Count; 
     368 
     369            if (palikoitaOikealla + palikoitaVasemmalla + palikoitaAlhaalla < 6) 
     370            { 
     371                Water.Destroy(); 
     372                ajastin.Stop(); 
     373            } 
     374        }; 
     375        ajastin.Start(); 
    320376    } 
    321377 
     
    363419        AddCollisionHandler(pelaaja1, "SpeedBoots", TormaaSpeedBootsiin); 
    364420        AddCollisionHandler(pelaaja1, "Pommipakkaus", TormaaPommipakkaukseen); 
     421        AddCollisionHandler(pelaaja1, "Ammo", AmmoTormaus); 
    365422        Add(pelaaja1); 
    366423    } 
     
    402459 
    403460        FollowerBrain WizardBrain = new FollowerBrain(pelaaja1); 
    404         //WizardBrain.Speed = 100; 
    405         //WizardBrain.FallsOffPlatforms = true; 
    406         //WizardBrain.JumpSpeed = 700; 
    407         //WizardBrain.TriesToJump = true; 
    408  
     461        PlatformWandererBrain toisetAivot = new PlatformWandererBrain(); 
     462        WizardBrain.FarBrain = toisetAivot; 
    409463        Wizard.Brain = WizardBrain; 
     464        WizardBrain.DistanceClose = 10*RUUDUN_KOKO; 
     465         
    410466 
    411467        Wizard.Weapon = new AssaultRifle(10, 10); 
    412468        Wizard.Weapon.Position = new Vector(10,0); 
    413469        Wizard.Weapon.AttackSound = WizardZap; 
     470        Wizard.Weapon.Power.DefaultValue = 200; 
     471 
    414472        Wizard.Weapon.Image = WizardrWand; 
    415473        //Wizard.Weapon.Image = WizardrWand; Ammuksen kuvaksi 
     
    417475 
    418476        const double ampumisEtaisyys = 10*RUUDUN_KOKO; 
    419  
    420         Timer shootingtimer = new Timer(); 
    421         shootingtimer.Interval = 0.75; 
    422         shootingtimer.Timeout += delegate 
    423         { 
    424             if (Vector.Distance(Wizard.Position, pelaaja1.Position) < ampumisEtaisyys) 
     477        WizardBrain.TargetClose += delegate 
     478        { 
     479            Timer shootingtimer = new Timer(); 
     480            shootingtimer.Interval = 0.75; 
     481            shootingtimer.Timeout += delegate 
    425482            { 
    426                 Wizard.Weapon.Shoot(); 
    427             } 
     483                if (Vector.Distance(Wizard.Position, pelaaja1.Position) < ampumisEtaisyys) 
     484                { 
     485                    PhysicsObject Ammus = Wizard.Weapon.Shoot(); 
     486                    if (Ammus != null) 
     487                    { 
     488                        Ammus.Image = WizParticle; 
     489                        AddCollisionHandler(Ammus,CollisionHandler.DestroyObject); 
     490                        Ammus.Tag = "Ammo"; 
     491                    } 
     492                } 
     493            }; 
     494            shootingtimer.Start(); 
    428495        }; 
    429         shootingtimer.Start(); 
    430  
     496 
     497    } 
     498 
     499    void Ninja(Vector paikka, double leveys, double korkeus) 
     500    { 
     501        PlatformCharacter Ninja = new PlatformCharacter(leveys /8 *3, korkeus); 
     502        Ninja.Position = paikka; 
     503        Ninja.Image = NinjaImage; 
     504        Ninja.Tag = "Ninja"; 
     505        Add(Ninja); 
     506        GameObject NinjaThings = new GameObject(leveys, korkeus); 
     507        NinjaThings.Image = Ninjathings; 
     508        Ninja.Add(NinjaThings); 
    431509    } 
    432510 
     
    434512    void LisaaNappaimet() 
    435513    { 
    436         Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     514        //Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    437515        Keyboard.Listen(Key.Escape, ButtonState.Pressed, LuoPeliValikko, "Lopeta peli"); 
    438516 
     
    504582 
    505583        Grenade Pommi = new Grenade(10.0); 
    506         //  Pommi.Destroyed += delegate { Pommit.AddValue(-1); }; 
     584        for (int i = 0; i < destroybleThings.Count; i++) 
     585        { 
     586         Pommi.Explosion.AddShockwaveHandler(destroybleThings[i], DestroyCube); 
     587        } 
     588        Pommi.Explosion.AddShockwaveHandler(pelaaja1, PalyerTouchingExplo); 
    507589        hahmo.Throw(Pommi, Angle.FromDegrees(30), 10000); 
    508590        Pommi.Image = Bomb; 
     
    619701    } 
    620702 
     703    void AmmoTormaus(PhysicsObject hahmo, PhysicsObject silmamob) 
     704    { 
     705        elamaLaskuri.Value -= 9; 
     706    } 
     707 
    621708    void TormaaNuoleen(PhysicsObject hahmo, PhysicsObject nuoli) 
    622709    { 
     
    638725        Pommipakkaus.Destroy(); 
    639726    } 
     727 
     728    void DestroyCube(IPhysicsObject destroyable, Vector v  ) 
     729    { 
     730        destroyable.Destroy(); 
     731    } 
     732    void PalyerTouchingExplo(IPhysicsObject pelaaja1, Vector v) 
     733    { 
     734        elamaLaskuri.Value -= 5; 
     735    } 
     736 
     737    void WizardRage() 
     738    { 
     739     
     740    } 
    640741} 
Note: See TracChangeset for help on using the changeset viewer.