Changeset 4022 for 2013/23


Ignore:
Timestamp:
2013-06-07 13:25:31 (6 years ago)
Author:
lemilaht
Message:

valmis

Location:
2013/23/LeoL/Lord_Of_the_Swords/Lord_Of_the_Swords
Files:
8 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • 2013/23/LeoL/Lord_Of_the_Swords/Lord_Of_the_Swords/Lord_Of_the_Swords/Lord_Of_the_Swords.cs

    r3990 r4022  
    99using Jypeli.Widgets; 
    1010using Physics2DDotNet.Ignorers; 
    11 interface Valittava 
     11 
     12public interface Valittava 
    1213{ 
    13  
     14    void Hyokkaa(int vahinko); 
     15    bool Kuollut(); 
     16    Vector GetPosition(); 
     17    double Koko(); 
    1418} 
    15 [Serializable] class Aloituspaikka : PhysicsObject, Valittava 
     19 
     20class Aloituspaikka : PhysicsObject, Valittava 
    1621{ 
    17     private IntMeter elamaLaskuri = new IntMeter(2000, 0, 2000); 
     22    private int elämät { get; set; } 
    1823    public int ObjectID { get; set; } 
    19     public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     24    public string Rotu { get; set; } 
     25 
     26    public Vector GetPosition() 
     27    { 
     28        return this.Position; 
     29    } 
     30 
     31 
     32    public double Koko() 
     33    { 
     34        return this.Width / 2.0; 
     35    } 
     36 
     37 
     38    public bool Kuollut() 
     39    { 
     40        return elämät <= 0; 
     41    } 
     42 
     43    public void Hyokkaa(int vahinko) 
     44    { 
     45        elämät -= vahinko; 
     46        if (elämät == 0) 
     47            this.Destroy(); 
     48    } 
    2049    public Aloituspaikka(double leveys, double korkeus) 
    2150        : base(leveys, korkeus) 
    2251    { 
    2352        this.MakeStatic(); 
    24         elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     53        elämät = 2000; 
    2554        ObjectID = 1; 
    2655    } 
     
    2857 
    2958} 
    30 public class DeepCloneClass 
     59 
     60 
     61class tukikohta : Aloituspaikka 
    3162{ 
    32     public static T DeepClone<T>(T obj) 
    33     { 
    34         using (var ms = new MemoryStream()) 
    35         { 
    36             var formatter = new BinaryFormatter(); 
    37             formatter.Serialize(ms, obj); 
    38             ms.Position = 0; 
    39  
    40             return (T)formatter.Deserialize(ms); 
    41         } 
    42     } 
    43 } 
    44  
    45 [Serializable] class tukikohta : Aloituspaikka 
    46 { 
    47  
     63    public new int elämät { get; set; } 
    4864    public int Mhinta { get; set; } 
    4965    private int raksaK { get; set; } 
     
    5167        : base(leveys, korkeus) 
    5268    { 
     69        elämät = 1500; 
    5370        raksaK = 1; 
    54         ElamaLaskuri.DefaultValue = 2000; 
    55         ElamaLaskuri.MaxValue = 2000; 
    56         ElamaLaskuri.Reset(); 
    5771        this.MakeStatic(); 
    58         ElamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
    5972        Mhinta = 400; 
    6073        ObjectID = 1; 
     
    6477 
    6578} 
    66 [Serializable] class rakennus : tukikohta 
     79class rakennus : tukikohta 
    6780{ 
    6881    public new int Mhinta { get; set; } 
     
    152165class työlainen : PhysicsObject, Valittava 
    153166{ 
     167    public string Rotu { get; set; } 
    154168    public int koulutusaika { get; set; } 
    155169    public int Mhinta { get; set; } 
     
    163177    public int supplycost { get; set; } 
    164178    public int elämät { get; set; } 
    165     private List<Vector> liikkumiset = new List<Vector>(); 
     179 
     180    public Vector GetPosition() 
     181    { 
     182        return this.Position; 
     183    } 
     184    public double Koko() 
     185    { 
     186        return this.Width / 2.0; 
     187    } 
     188 
     189    public bool Kuollut() 
     190    { 
     191        return elämät <= 0; 
     192    } 
     193 
     194    public void Hyokkaa(int vahinko) 
     195    { 
     196        elämät -= vahinko; 
     197        if (elämät == 0) 
     198            this.Destroy(); 
     199    } 
    166200    public työlainen(double leveys, double korkeus) 
    167201        : base(leveys, korkeus) 
     
    186220class Sotilas : PhysicsObject, Valittava 
    187221{ 
     222    public string Rotu { get; set; } 
    188223    public int vahinko { get; set; } 
    189224    public int ObjectID { get; set; } 
     
    201236    public double hyökkäysaika { get { return ase.FireRate; } set { ase.FireRate = value; } } 
    202237    public int supplycost { get; set; } 
    203     public List<Vector> liikkumiset; 
     238    private Valittava kohde; 
     239    public Valittava Kohde { get { return kohde; } set { Taistele(value); } } 
     240 
     241    public Vector GetPosition() 
     242    { 
     243        return this.Position; 
     244    } 
     245 
     246 
     247    public bool Kuollut() 
     248    { 
     249        return elämät <= 0; 
     250    } 
     251 
     252    public void Hyokkaa(int vahinko) 
     253    { 
     254        elämät -= vahinko; 
     255        if (elämät == 0) 
     256            this.Destroy(); 
     257    } 
     258 
     259 
     260    public void Taistele(Valittava kohde) 
     261    { 
     262        this.kohde = kohde; 
     263        Timer ajastin = new Timer(); 
     264        if(hyökkäysaika != 0) 
     265        ajastin.Interval = hyökkäysaika; 
     266        else throw new Exception("Hyökkäysaika oli 0!"); 
     267        ajastin.Start(); 
     268        ajastin.Timeout += delegate { LaskeTaistelu(ajastin); }; 
     269    } 
     270    public double Koko() 
     271    { 
     272        return this.Width / 2.0; 
     273    } 
     274    public void LaskeTaistelu(Timer ajastin) 
     275    { 
     276        if (kohde == null) return; 
     277        if (Vector.Distance(this.Position, kohde.GetPosition()) > this.range + kohde.Koko()) return; 
     278        kohde.Hyokkaa(this.vahinko); 
     279        if (kohde.Kuollut()) 
     280        { 
     281            if(ajastin != null) ajastin.Stop(); 
     282            ajastin = null; 
     283            kohde = null; 
     284        } 
     285 
     286    } 
     287 
    204288 
    205289    public Sotilas(double leveys, double korkeus, int elämiä) 
     
    207291    { 
    208292        this.IgnoresGravity = true; 
    209         Liikkumistila = 0; 
    210         liikkumiset = new List<Vector>(); 
    211         GameObject liikkumispiste = new GameObject(20, 20); 
     293        Liikkumistila = 0;; 
    212294        ObjectID = 2; 
    213295        ase = new AssaultRifle(1, 1); 
     
    219301        elämät = elämiä; 
    220302        this.CanRotate = false; 
    221         this.Brain = aivot(range, visibility, nopeus, vahinko, liikkumiset); 
    222     } 
    223  
    224     Sotilas LuoUusi(Sotilas sotilas) 
     303        this.Restitution = 0; 
     304        this.Brain = aivot(range, visibility, nopeus, vahinko); // , liikkumiset); 
     305    } 
     306 
     307   public static Sotilas LuoUusi(Sotilas sotilas) 
    225308    { 
    226309        Sotilas uusi = new Sotilas(sotilas.Size.X, sotilas.Size.Y, sotilas.elämät); 
     
    234317        uusi.Brain = sotilas.Brain; 
    235318        uusi.armor = sotilas.armor; 
     319        uusi.Rotu = sotilas.Rotu; 
    236320        uusi.koulutusaika = sotilas.koulutusaika; 
    237321        uusi.hyökkäysaika = sotilas.hyökkäysaika; 
     
    242326 
    243327 
    244     Brain aivot(int range, int visibility, int nopeus, int vahinko, List<Vector> liikkumiset) 
    245     { 
    246         FollowerBrain aivot = new FollowerBrain("vihollinen"); 
     328    Brain aivot(int range, int visibility, int nopeus, int vahinko) //, List<IGameObject> liikkumiset) 
     329    { 
     330        FollowerBrain aivot = new FollowerBrain("v"); 
     331        //aivot.ObjectsToFollow = liikkumiset; 
     332        //aivot.ObjectsToFollow.Add(item); 
    247333        aivot.Speed = nopeus; 
    248334        aivot.DistanceFar = visibility; 
     
    251337 
    252338 
    253         //hyökkäysaivot.TargetClose += Hyökkää(); 
     339        aivot.TargetClose += delegate { Hyökkää(aivot); }; 
    254340        return aivot; 
    255341 
    256342    } 
    257343 
    258     /*   public void Hyökkää(object lahettajaAivot, EventArgs e ) 
    259         {   
    260          
    261         }   */ 
     344    public void Hyökkää(FollowerBrain lahettajaAivot) 
     345    { 
     346        IGameObject go = lahettajaAivot.CurrentTarget; 
     347        //if(go.Tag == "vihutyöläinen") 
     348        //{ 
     349 
     350        //} 
     351 
     352 
     353    } 
    262354 
    263355} 
     
    281373    Image Kaupunkikuva = LoadImage("kaupunki"); 
    282374    Image Corek = LoadImage("core"); 
    283     Image Raperkuva = LoadImage("Reaper1"); 
     375    Image Raperkuva = LoadImage("Reaper.1"); 
    284376    Image CitadelK = LoadImage("citadel"); 
    285377    Image CrystalK = LoadImage("kristalli"); 
     
    307399    List<tukikohta> Ptukikohdat = new List<tukikohta>(); 
    308400    List<tukikohta> tukikohdat = new List<tukikohta>(); 
     401    List<Aloituspaikka> AIaloituspaikka = new List<Aloituspaikka>(); 
     402    List<Sotilas> AIValitutsotilaat = new List<Sotilas>(); 
     403    List<Sotilas> ISotilaat = new List<Sotilas>(); 
     404    List<työlainen> Ityöläiset = new List<työlainen>(); 
     405    List<Sotilas> AISotilaat = new List<Sotilas>(); 
     406    List<työlainen> AItyöläiset = new List<työlainen>(); 
     407    List<työlainen> AIvalitutTyöläiset = new List<työlainen>(); 
     408    List<rakennus> AIrakennus = new List<rakennus>(); 
     409    List<rakennus> Irakennuus = new List<rakennus>(); 
     410    List<rakennus> valitutIRakennukset = new List<rakennus>(); 
     411    List<tukikohta> AItukikohdat = new List<tukikohta>(); 
     412    List<tukikohta> Itukikohdat = new List<tukikohta>(); 
     413    List<työlainen> DemoniT = new List<työlainen>(); 
     414    List<tukikohta> DemoniTu = new List<tukikohta>(); 
     415    List<Sotilas> DemoniS = new List<Sotilas>(); 
     416    List<rakennus> DemoniR = new List<rakennus>(); 
     417    List<työlainen> felidiT = new List<työlainen>(); 
     418    List<tukikohta> felidiTu = new List<tukikohta>(); 
     419    List<Sotilas> felidiS = new List<Sotilas>(); 
     420    List<rakennus> felidiR = new List<rakennus>(); 
     421    List<työlainen> humanT = new List<työlainen>(); 
     422    List<tukikohta> humanTu = new List<tukikohta>(); 
     423    List<Sotilas> humanS = new List<Sotilas>(); 
     424    List<rakennus> humanR = new List<rakennus>(); 
     425    List<työlainen> darkorT = new List<työlainen>(); 
     426    List<tukikohta> darkorTu = new List<tukikohta>(); 
     427    List<Sotilas> darkorS = new List<Sotilas>(); 
     428    List<rakennus> darkorR = new List<rakennus>(); 
     429    IntMeter Pkristallit; 
     430    IntMeter Phevoset; 
    309431    IntMeter Pmetallit; 
     432    IntMeter PsupplyC; 
     433    IntMeter PsupplyU; 
    310434    public override void Begin() 
    311435    { 
     
    325449    { 
    326450        Pmetallit = new IntMeter(50); 
    327  
     451        Pkristallit = new IntMeter(0); 
    328452        Label pisteNaytto = new Label(); 
    329         pisteNaytto.X = Screen.Left - 100; 
    330         pisteNaytto.Y = Screen.Top + 100; 
     453        pisteNaytto.X = Screen.Left + 100; 
     454        pisteNaytto.Y = Screen.Top - 100; 
    331455        pisteNaytto.TextColor = Color.Black; 
    332         pisteNaytto.Color = Color.White; 
     456 
    333457 
    334458        pisteNaytto.BindTo(Pmetallit); 
    335459        Add(pisteNaytto); 
     460        Pmetallit = new IntMeter(50); 
     461 
     462        Label PkristallitN = new Label(); 
     463        PkristallitN.X = Screen.Left + 100; 
     464        PkristallitN.Y = Screen.Top - 50; 
     465        PkristallitN.TextColor = Color.Black; 
     466 
     467 
     468        PkristallitN.BindTo(Pkristallit); 
     469        Add(PkristallitN); 
    336470    } 
    337471    void Valikko() 
     
    391525        ruudut.SetTileMethod(Color.Black, Pelaaja); 
    392526        ruudut.SetTileMethod(Color.White, kaupunki); 
    393         //ruudut.SetTileMethod(Color.Yellow, Ylämaa ); 
    394527        ruudut.SetTileMethod(Color.FromHexCode("FF00D4"), reuna); 
    395528        ruudut.SetTileMethod(Color.FromHexCode("FFFF00"), Metalli); 
     
    397530        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), Luovuori); 
    398531        ruudut.SetTileMethod(Color.FromHexCode("808080"), AIaloitus); 
    399         //FF0010 
    400532        ruudut.SetTileMethod(Color.FromHexCode("FF0010"), hevoset); 
    401  
    402533        ruudut.Execute(20, 20); 
    403  
    404534        Rotualustus(); 
    405  
     535        AIalustus(); 
    406536        Level.BackgroundColor = Color.DarkForestGreen; 
    407537        Pmetallilaskuri(); 
     
    504634        Aloituspaikka aiAP = annaAIaloitus(leveys, korkeus); 
    505635        aiAP.Position = paikka; 
     636        AIaloituspaikka.Add(aiAP); 
    506637        Add(aiAP); 
    507638    } 
     
    510641    Aloituspaikka annaAIaloitus(double leveys, double korkeus) 
    511642    { 
    512         Aloituspaikka paikka = new Aloituspaikka(leveys, korkeus); 
     643        Aloituspaikka paikka = new Aloituspaikka(40, 40); 
    513644 
    514645        switch (AIrotu) 
     
    516647            case "felidi": 
    517648                paikka.Image = CitadelK; 
    518                 paikka.Tag = "AIluoja"; 
     649 
     650                paikka.Tag = "luojaAI"; 
    519651                for (int i = 0; i < 7; i++) 
    520652                { 
    521                     Lisätäänyksiköitä(); 
     653                    LisätäänyksiköitäAI(); 
    522654                } 
    523655                break; 
    524656            case "Human": 
    525657                paikka.Image = Kaupunkikuva; 
    526                 paikka.Tag = "AIluoja"; 
     658                paikka.Tag = "luojaAI"; 
    527659                for (int i = 0; i < 7; i++) 
    528660                { 
    529                     Lisätäänyksiköitä(); 
     661                    LisätäänyksiköitäAI(); 
    530662                } 
    531663                break; 
    532664            case "darkor": 
    533665                paikka.Image = Nexuz; 
    534                 paikka.Tag = "AIluoja"; 
     666                paikka.Tag = "luojaAI"; 
    535667                for (int i = 0; i < 7; i++) 
    536668                { 
    537                     Lisätäänyksiköitä(); 
     669                    LisätäänyksiköitäAI(); 
    538670                } 
    539671                break; 
    540672            case "Demoni": 
    541673                paikka.Image = Hatchkuva; 
    542                 paikka.Tag = "AIluoja"; 
     674                paikka.Tag = "luojaAI"; 
    543675                break; 
    544676 
     
    624756        Keyboard.Listen(Key.F, ButtonState.Pressed, rotuTarkistusRakennaT, "Rakentaa supplyn", "make"); 
    625757        Keyboard.Listen(Key.G, ButtonState.Pressed, rotuTarkistusRakennaT, "Rakentaa supplyn", "eriokois"); 
     758        Keyboard.Listen(Key.Y, ButtonState.Pressed, koulutaT, "kouluttaa raskaan yksikön", "raskas"); 
     759        Keyboard.Listen(Key.U, ButtonState.Pressed, koulutaT, "kouluttaa raskaan yksikön", "peruss"); 
    626760        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, valitseyksiköt, "Valitsee sotilaat"); 
    627761        Mouse.Listen(MouseButton.Left, ButtonState.Released, suoritaValinta, "ad"); 
    628762        Mouse.Listen(MouseButton.Right, ButtonState.Pressed, suoritaKomento, "ad"); 
    629         Mouse.Listen(MouseButton.Middle, ButtonState.Pressed, valitseRakennus, "valitsee rakennuksen"); 
    630763        Keyboard.Listen(Key.A, ButtonState.Pressed, valitsekaikki, "valitsee kaikki yksikköt"); 
    631764    } 
     
    636769        { 
    637770            case "darkor": 
    638                 for(int i = 0; i < Prakennus.Count; i++) 
    639                 { 
    640                     if (Prakennus[i].Tag.Equals(tag)) 
     771                for (int i = 0; i < Prakennus.Count; i++) 
     772                { 
     773                    if (Prakennus[i].Tag.ToString().StartsWith(tag)) 
    641774                    { 
    642775                        rakennaT(tag, DR, Prakennus[i].rakennusaika, Prakennus[i].Image); 
    643776                    } 
    644                     if (Prakennus[i].Tag.Equals("kouluttaja")) 
    645                     { 
    646                         voidc(); 
    647                         Summoner(); 
    648                     } 
     777                     
    649778                } 
    650779                break; 
     
    652781                for (int i = 0; i < Prakennus.Count; i++) 
    653782                { 
    654                     if (Prakennus[i].Tag.Equals(tag)) 
     783                    if (Prakennus[i].Tag.ToString().StartsWith(tag)) 
    655784                    { 
    656785                        rakennaT(tag, DR, Prakennus[i].rakennusaika, Prakennus[i].Image); 
     
    658787                } 
    659788                break; 
     789            case "Demoni": 
     790                for (int i = 0; i < Prakennus.Count; i++) 
     791                { 
     792                    if (Prakennus[i].Tag.ToString().StartsWith(tag)) 
     793                    { 
     794                        rakennaT(tag, DR, Prakennus[i].rakennusaika, Prakennus[i].Image); 
     795                    } 
     796                } 
     797                break; 
     798            case "felidi": 
     799                for (int i = 0; i < Prakennus.Count; i++) 
     800                { 
     801                    if (Prakennus[i].Tag.ToString().StartsWith(tag)) 
     802                    { 
     803                        rakennaT(tag, DR, Prakennus[i].rakennusaika, Prakennus[i].Image); 
     804                    } 
     805                } 
     806                break; 
    660807            default: 
    661808                break; 
     
    664811    } 
    665812 
    666  
     813    void koulutaT(string tag) 
     814    { 
     815        if (!(ButtonState.Down.Equals(Keyboard.GetKeyState(Key.T)))) return; 
     816        switch (Rotu) 
     817        { 
     818            case "darkor": 
     819                for (int i = 0; i < Prakennus.Count; i++) 
     820                { 
     821                    if (PSotilaat[i].Tag.Equals(tag)) 
     822                    { 
     823                        kouluta(tag, PSotilaat[i].koulutusaika, PSotilaat[i].Image); 
     824                    } 
     825 
     826                     
     827                } 
     828                break; 
     829            case "Human": 
     830                for (int i = 0; i < Prakennus.Count; i++) 
     831                { 
     832                    if (PSotilaat[i].Tag.Equals(tag)) 
     833                    { 
     834                        kouluta(tag,  PSotilaat[i].koulutusaika, PSotilaat[i].Image); 
     835                    } 
     836                } 
     837                break; 
     838            case "Demoni": 
     839                for (int i = 0; i < Prakennus.Count; i++) 
     840                { 
     841                    if (PSotilaat[i].Tag.Equals(tag)) 
     842                    { 
     843                        kouluta(tag,  PSotilaat[i].koulutusaika, PSotilaat[i].Image); 
     844                    } 
     845                } 
     846                break; 
     847            case "felidi": 
     848                for (int i = 0; i < PSotilaat.Count; i++) 
     849                { 
     850                    if (PSotilaat[i].Tag.Equals(tag)) 
     851                    { 
     852                        kouluta(tag, PSotilaat[i].koulutusaika, PSotilaat[i].Image); 
     853                    } 
     854                } 
     855                break; 
     856            default: 
     857                break; 
     858        } 
     859    } 
     860    void kouluta(string tag, double aika, Image kuva) 
     861    { 
     862        Vector Z = new Vector(); 
     863        for (int i = 0; i < valitutRakennukset.Count; i++) 
     864        { 
     865            Z = valitutRakennukset[i].Position; 
     866          
     867        } 
     868         
     869       Z  += new Vector(0, 30); 
     870         
     871        if (TarkistaOnkoRakennustaTarjolla(Z, 40)) 
     872        { 
     873            Sotilas sotilas = null; 
     874            foreach (var item in PSotilaat) 
     875            { 
     876                if (tag.Equals(item.Tag)) sotilas = item; 
     877            } 
     878            if (sotilas == null) return; 
     879            Sotilas sotilas2 = Sotilas.LuoUusi(sotilas); 
     880            sotilas2.Position = Z; 
     881            sotilas2.Image = kuva; 
     882            Sotilaat.Add(sotilas2); 
     883            Timer ajastin = new Timer(); 
     884            ajastin.Interval = aika; 
     885            ajastin.Timeout += delegate { Add(sotilas2); }; 
     886            ajastin.Start(1); 
     887        } 
     888 
     889    } 
    667890    void rakennaT(string tag, Image kuva, double aika, Image valmisKuva) 
    668891    { 
     
    678901            if (rak == null) return; 
    679902            rakennus uusi = rakennus.LuoUusi(rak); 
    680            // AddCollisionHandler(uusi, TarkistusRakennusTilasta); 
     903            // AddCollisionHandler(uusi, TarkistusRakennusTilasta); 
    681904            uusi.Position = point; 
    682905            Add(uusi); 
     
    710933    } 
    711934 
     935    bool TarkistaOnkoRakennustaTarjolla(Vector point, double etaisyys) 
     936    { 
     937        foreach (var item in valitutRakennukset) 
     938        { 
     939            if (Vector.Distance(item.Position, point) <= etaisyys) 
     940                return true; 
     941        } 
     942        return false; 
     943    } 
     944 
     945 
    712946 
    713947    void sijoitus(int raksa) 
     
    8091043        for (int i = 0; i < Ptyöläiset.Count; i++) 
    8101044        { 
    811             if (Ptyöläiset[i].Tag.Equals("työläinen")) 
     1045            if (Ptyöläiset[i].Tag.ToString().StartsWith("työläinen")) 
    8121046            { Add(Ptyöläiset[i]); } 
    8131047        } 
    8141048 
    8151049    } 
    816  
     1050    void LisätäänyksiköitäAI() 
     1051    { 
     1052        for (int i = 0; i < AItyöläiset.Count; i++) 
     1053        { 
     1054            if (AItyöläiset[i].Tag.ToString().StartsWith("työläinen")) 
     1055            { Add(AItyöläiset[i]); } 
     1056            { 
     1057                Vector V = new Vector(100, 0); 
     1058                if (AIaloituspaikka[i].Tag.ToString().StartsWith("luoja")) 
     1059                    AItyöläiset[i].Position = AIaloituspaikka[i].Position - V; 
     1060            } 
     1061        } 
     1062 
     1063    } 
    8171064    void insinoori() 
    8181065    { 
     
    8241071                inssi.Position = Paloituspaikka[i].Position - V; 
    8251072        } 
    826         Ptyöläiset.Add(inssi); 
     1073        humanT.Add(inssi); 
    8271074 
    8281075    } 
     
    8401087        } 
    8411088        Spawn.Image = Spawnk; 
    842         Ptyöläiset.Add(Spawn); 
     1089        darkorT.Add(Spawn); 
    8431090 
    8441091    } 
     
    8761123        Reaper.visibility = 100; 
    8771124        Reaper.vahinko = 10; 
     1125        Reaper.nopeus = 40; 
    8781126        Reaper.IgnoresGravity = true; 
    8791127        Reaper.Image = Raperkuva; 
    880         Reaper.Tag = "reaper"; 
    881         PSotilaat.Add(Reaper); 
     1128        Reaper.Tag = "peruss"; 
     1129        darkorS.Add(Reaper); 
    8821130 
    8831131    } 
     
    8881136 
    8891137    } 
    890     void Voidwalker(Vector paikka, double leveys, double korkeus, int elämiä) 
     1138    void Voidwalker() 
    8911139    { 
    8921140        Sotilas voidwalker = new Sotilas(2, 2, 200); 
     
    8971145        voidwalker.Tag = "voidwalker"; 
    8981146        voidwalker.IgnoresGravity = true; 
    899         PSotilaat.Add(voidwalker); 
     1147        darkorS.Add(voidwalker); 
    9001148    } 
    9011149 
     
    9031151    { 
    9041152        työlainen worker = new työlainen(2, 2); 
     1153        worker.Tag = "työläinen"; 
    9051154        for (int i = 0; i < Paloituspaikka.Count; i++) 
    9061155        { 
    9071156            Vector V = new Vector(100, 0); 
    9081157            if (Paloituspaikka[i].Tag.Equals("luoja")) 
    909                 worker.Position = Paloituspaikka[i].Position - V; 
    910         } 
    911         Ptyöläiset.Add(worker); 
     1158               worker.Position = Paloituspaikka[i].Position - V; 
     1159 
     1160        } 
     1161        felidiT.Add(worker); 
    9121162    } 
    9131163    void luoparakit() 
     
    9191169        Barracks.Image = parakkikuva; 
    9201170        Barracks.Tag = "kouluttaja"; 
    921         Prakennus.Add(Barracks); 
     1171        humanR.Add(Barracks); 
    9221172 
    9231173    } 
     
    9311181        Voidcore.Image = VCIM; 
    9321182        Voidcore.Tag = "ATra"; 
    933         Prakennus.Add(Voidcore); 
     1183        darkorR.Add(Voidcore); 
    9341184 
    9351185    } 
     
    9391189        fortress.Position = paikka; 
    9401190        fortress.Tag = "luoja"; 
    941     } 
    942  
    943     void kata(Vector paikka, double leveys, double korkeus) 
     1191        Ptukikohdat.Add(fortress); 
     1192    } 
     1193 
     1194    void kata() 
    9441195    { 
    9451196        Sotilas katapultti = new Sotilas(40, 40, 200); 
     
    9491200        katapultti.nopeus = 5; 
    9501201        katapultti.armor = 4; 
    951         PSotilaat.Add(katapultti); 
     1202        katapultti.Tag = "Siege"; 
     1203        humanS.Add(katapultti); 
    9521204    } 
    9531205    void drone() 
     
    9561208        for (int i = 0; i < Paloituspaikka.Count; i++) 
    9571209        { 
    958             Vector V = new Vector(100, 0); 
     1210            Vector V = new Vector(50, 0); 
    9591211            if (Paloituspaikka[i].Tag.Equals("luoja")) 
    9601212                Drone.Position = Paloituspaikka[i].Position - V; 
    9611213        } 
    9621214        Drone.Image = Dronek; 
    963         Ptyöläiset.Add(Drone); 
    964     } 
    965     void fort(Vector paikka, double leveys, double korkeus) 
    966     { 
    967         tukikohta fortress = new tukikohta(80, 80); 
    968         fortress.Position = paikka; 
    969         Ptukikohdat.Add(fortress); 
     1215        DemoniT.Add(Drone); 
    9701216    } 
    9711217    void kirves() 
    9721218    { 
    9731219        Sotilas kirvesmies = new Sotilas(20, 20, 100); 
    974         for (int i = 0; i < Prakennus.Count; i++) 
    975         { 
    976             if (Prakennus[i].Tag.Equals("Barracks")) 
    977                 kirvesmies.Position = Prakennus[i].Position; 
    978         } 
    979  
    980  
    9811220        kirvesmies.vahinko = 20; 
    9821221        kirvesmies.Mhinta = 50; 
    9831222        kirvesmies.visibility = 60; 
    9841223        kirvesmies.nopeus = 30; 
    985         kirvesmies.Tag = "kirvesmies"; 
     1224        kirvesmies.Tag = "peruss"; 
    9861225        kirvesmies.range = 20; 
    9871226        kirvesmies.armor = 0; 
     
    9891228        kirvesmies.Khinta = 0; 
    9901229        kirvesmies.Hhinta = 0; 
    991         PSotilaat.Add(kirvesmies); 
    992     } 
    993     void rakennuspaja(Vector paikka, double leveys, double korkeus) 
    994     { 
    995         rakennus Työpaja = new rakennus(80, 40); 
     1230        humanS.Add(kirvesmies); 
     1231    } 
     1232    void rakennuspaja() 
     1233    { 
     1234        rakennus Työpaja = new rakennus(40, 20); 
    9961235        Työpaja.elämät = 600; 
    9971236        Työpaja.Mhinta = 200; 
    9981237        Työpaja.Khinta = 100; 
    9991238        Työpaja.rakennusaika = 120; 
    1000         Add(Työpaja); 
     1239        humanR.Add(Työpaja); 
    10011240    } 
    10021241    Image GI = LoadImage("gateway"); 
     
    10101249        warpgate.Image = WP; 
    10111250        warpgate.Tag = "kouluttaja"; 
    1012         Prakennus.Add(warpgate); 
     1251        darkorR.Add(warpgate); 
    10131252    } 
    10141253    void maatila() 
     
    10161255        rakennus farm = new rakennus(10, 10); 
    10171256        farm.Tag = "supply"; 
    1018         Prakennus.Add(farm); 
     1257        humanR.Add(farm); 
    10191258    } 
    10201259    void linnan(Vector paikka, double leveys, double korkeus) 
     
    10221261        tukikohta linna = new tukikohta(80, 80); 
    10231262        linna.Position = paikka; 
    1024         Add(linna); 
     1263        humanTu.Add(linna); 
    10251264    } 
    10261265    void luokristalli(Vector paikka, double leveys, double korkeus) 
     
    10681307        } 
    10691308        valitutTyöläiset.Clear(); 
    1070         for (int i = 0; i < Ptyöläiset.Count; i++) 
     1309        for (int i = 0; i < työläiset.Count; i++) 
    10711310        { 
    10721311 
     
    10761315            } 
    10771316 
     1317        } 
     1318        valitutRakennukset.Clear(); 
     1319        for (int i = 0; i < rakennuus.Count; i++) 
     1320        { 
     1321            if (valitsin.IsInside(rakennuus[i].Position)) 
     1322            { 
     1323                valitutRakennukset.Add(rakennuus[i]); 
     1324            } 
    10781325        } 
    10791326        Remove(valitsin); 
     
    10961343        valtsinJ.Shape = Shape.Circle; 
    10971344        valtsinJ.Color = Color.BloodRed; 
    1098         PMoverS.Add(valtsinJ.Position); 
    1099         PmoverT.Add(valtsinJ.Position); 
     1345        //PMoverS.Add(valtsinJ.Position); 
     1346        //PmoverT.Add(valtsinJ.Position); 
    11001347        Add(valtsinJ); 
    11011348        valtsinJ.Destroy(); 
    1102         Vector paikka = PMoverS[0]; 
    1103         Vector paikka2 = PmoverT[0]; 
     1349        //Vector paikka = PMoverS[0]; 
     1350        //Vector paikka2 = PmoverT[0]; 
     1351        Vector paikka = valtsinJ.Position; 
    11041352        for (int i = 0; i < Valitutsotilaat.Count; i++) 
    11051353        { 
     
    11081356            Vector suunta2 = new Vector(paikka.X - U.X, paikka.Y - U.Y); 
    11091357            Valitutsotilaat[i].Angle = suunta2.Angle; 
    1110             PMoverS.Remove(paikka); 
     1358            Valitutsotilaat[i].Angle = Valitutsotilaat[i].Angle + Angle.FromDegrees(270); 
     1359            for (int j = 0; j < ISotilaat.Count; j++) 
     1360            { 
     1361                if (ISotilaat[i].IsInside(paikka)) 
     1362                { 
     1363                    Valitutsotilaat[i].Kohde = ISotilaat[i]; 
     1364                     
     1365                } 
     1366            } 
     1367            for (int j = 0; j < AIaloituspaikka.Count; j++) 
     1368            { 
     1369                if (AIaloituspaikka[j].IsInside(paikka)) 
     1370                { 
     1371                    Valitutsotilaat[i].Kohde = AIaloituspaikka[j]; 
     1372                     
     1373                } 
     1374            } 
     1375            //PMoverS.Remove(paikka); 
    11111376        } 
    11121377        for (int i = 0; i < valitutTyöläiset.Count; i++) 
    11131378        { 
    1114             valitutTyöläiset[i].MoveTo(paikka2, valitutTyöläiset[i].nopeus); 
     1379            valitutTyöläiset[i].MoveTo(paikka, valitutTyöläiset[i].nopeus); 
    11151380            Vector V = new Vector(valitutTyöläiset[i].X, valitutTyöläiset[i].Y); 
    1116             Vector suunta = new Vector(paikka2.X - V.X, paikka2.Y - V.Y); 
     1381            Vector suunta = new Vector(paikka.X - V.X, paikka.Y - V.Y); 
    11171382            valitutTyöläiset[i].Angle = suunta.Angle; 
    1118             PmoverT.Remove(paikka2); 
     1383            valitutTyöläiset[i].Angle = valitutTyöläiset[i].Angle + Angle.FromDegrees(270); 
     1384            //PmoverT.Remove(paikka2); 
    11191385        } 
    11201386    } 
     
    11271393                kirves(); 
    11281394                insinoori(); 
     1395                kata(); 
     1396                rakennuspaja(); 
     1397                for (int i = 0; i < humanR.Count; i++) 
     1398                { 
     1399                    Prakennus.Add(humanR[i]); 
     1400                } 
     1401                for (int i = 0; i < humanS.Count; i++) 
     1402                { 
     1403                    PSotilaat.Add(humanS[i]); 
     1404                } 
     1405                for (int i = 0; i < humanT.Count; i++) 
     1406                { 
     1407                    Ptyöläiset.Add(humanT[i]); 
     1408                } 
     1409                for (int i = 0; i < humanTu.Count; i++) 
     1410                { 
     1411                    Ptukikohdat.Add(humanTu[i]); 
     1412                } 
    11291413                break; 
    11301414            case "darkor": 
    11311415                Luocore(); 
    11321416                spawn(); 
     1417                Summoner(); 
    11331418                reaper(); 
     1419                voidc(); 
     1420                Voidwalker(); 
    11341421                warppoint(); 
     1422                for (int i = 0; i < darkorR.Count; i++) 
     1423                { 
     1424                    Prakennus.Add(darkorR[i]); 
     1425                } 
     1426                for (int i = 0; i < darkorS.Count; i++) 
     1427                { 
     1428                    PSotilaat.Add(darkorS[i]); 
     1429                } 
     1430                for (int i = 0; i < darkorT.Count; i++) 
     1431                { 
     1432                    Ptyöläiset.Add(darkorT[i]); 
     1433                } 
     1434                for (int i = 0; i < darkorTu.Count; i++) 
     1435                { 
     1436                    Ptukikohdat.Add(darkorTu[i]); 
     1437                } 
    11351438                break; 
    11361439            case "felidi": 
    11371440                luoworker(); 
     1441                luoTempelararch(); 
     1442                Luotempelar(); 
     1443                archerf(); 
     1444                luoLeego(); 
     1445                Legionfort(); 
     1446                 for (int i = 0; i < felidiR.Count; i++) 
     1447                { 
     1448                    Prakennus.Add(felidiR[i]); 
     1449                } 
     1450                for (int i = 0; i < felidiS.Count; i++) 
     1451                { 
     1452                    PSotilaat.Add(felidiS[i]); 
     1453                } 
     1454                for (int i = 0; i < felidiT.Count; i++) 
     1455                { 
     1456                    Ptyöläiset.Add(felidiT[i]); 
     1457                } 
     1458                for (int i = 0; i < felidiTu.Count; i++) 
     1459                { 
     1460                    Ptukikohdat.Add(felidiTu[i]); 
     1461                } 
    11381462                break; 
    11391463            case "Demoni": 
    11401464                drone(); 
     1465                cave(); 
    11411466                break; 
    11421467            default: 
     
    11561481        core.raksaK = 2; 
    11571482        core.Image = Corek; 
    1158         Prakennus.Add(core); 
     1483        darkorR.Add(core); 
    11591484    } 
    11601485    Image Sumk = LoadImage("Summoner"); 
     
    11681493        summoner.Tag = "hevostalli"; 
    11691494        summoner.Image = Sumk; 
    1170         Prakennus.Add(summoner); 
    1171     } 
    1172     void valitseRakennus() 
    1173     { 
    1174         valitutRakennukset.Clear(); 
    1175         PhysicsObject Rakvalitsin = PhysicsObject.CreateStaticObject(10, 10); 
    1176         Rakvalitsin.Position = Mouse.PositionOnWorld; 
    1177         Add(Rakvalitsin); 
    1178         for (int i = 0; i < rakennuus.Count; i++) 
    1179         { 
    1180  
    1181             if (rakennuus[i].Position.Equals(Rakvalitsin.Position)) 
     1495        darkorR.Add(summoner); 
     1496    } 
     1497    
     1498     
     1499    void cave() 
     1500    { 
     1501        rakennus Cave = new rakennus(10, 10); 
     1502        Cave.Mhinta = 100; 
     1503        Cave.Tag = "supply"; 
     1504        DemoniR.Add(Cave); 
     1505 
     1506    } 
     1507    void AIalustus() 
     1508    { 
     1509        switch (AIrotu) 
     1510        { 
     1511            case "Human": 
     1512                luoparakit(); 
     1513                kirves(); 
     1514                insinoori(); 
     1515                kata(); 
     1516                reaper(); 
     1517                rakennuspaja(); 
     1518                AIhyök(); 
     1519                for (int i = 0; i < humanR.Count; i++) 
     1520                { 
     1521                    AIrakennus.Add(humanR[i]); 
     1522                } 
     1523                for (int i = 0; i < humanS.Count; i++) 
     1524                { 
     1525                    AISotilaat.Add(humanS[i]); 
     1526                    humanS[i].Brain = ai(); 
     1527                } 
     1528                for (int i = 0; i < humanT.Count; i++) 
     1529                { 
     1530                    AItyöläiset.Add(humanT[i]); 
     1531                } 
     1532                for (int i = 0; i < humanTu.Count; i++) 
     1533                { 
     1534                    AItukikohdat.Add(humanTu[i]); 
     1535                } 
     1536                break; 
     1537            case "felidi": 
     1538                luoworker(); 
     1539                Luotempelar(); 
     1540                for (int i = 0; i < felidiR.Count; i++) 
     1541                { 
     1542                    AIrakennus.Add(felidiR[i]); 
     1543                } 
     1544                for (int i = 0; i < felidiS.Count; i++) 
     1545                { 
     1546                    AISotilaat.Add(felidiS[i]); 
     1547                } 
     1548                for (int i = 0; i < felidiT.Count; i++) 
     1549                { 
     1550                    AItyöläiset.Add(felidiT[i]); 
     1551                } 
     1552                for (int i = 0; i < felidiTu.Count; i++) 
     1553                { 
     1554                    AItukikohdat.Add(felidiTu[i]); 
     1555                } 
     1556                break; 
     1557            case "Demoni": 
     1558                cave(); 
     1559                drone(); 
     1560                reaper(); 
     1561                AIhyök(); 
     1562                for (int i = 0; i < DemoniR.Count; i++) 
     1563                { 
     1564                    AIrakennus.Add(DemoniR[i]); 
     1565                } 
     1566                for (int i = 0; i < DemoniS.Count; i++) 
     1567                { 
     1568                    AISotilaat.Add(DemoniS[i]); 
     1569                    DemoniS[i].Brain = ai(); 
     1570                } 
     1571                for (int i = 0; i < DemoniT.Count; i++) 
     1572                { 
     1573                    AItyöläiset.Add(DemoniT[i]); 
     1574                } 
     1575                for (int i = 0; i < DemoniTu.Count; i++) 
     1576                { 
     1577                    AItukikohdat.Add(DemoniTu[i]); 
     1578                } 
     1579                break; 
     1580            case "darkor": 
     1581                Luocore(); 
     1582                spawn(); 
     1583                reaper(); 
     1584                warppoint(); 
     1585                AIhyök(); 
     1586                for (int i = 0; i < darkorR.Count; i++) 
     1587                { 
     1588                    AIrakennus.Add(darkorR[i]); 
     1589                } 
     1590                for (int i = 0; i < darkorS.Count; i++) 
     1591                { 
     1592                    AISotilaat.Add(darkorS[i]); 
     1593                    darkorS[i].Brain = ai(); 
     1594                } 
     1595                for (int i = 0; i < darkorT.Count; i++) 
     1596                { 
     1597                    AItyöläiset.Add(darkorT[i]); 
     1598                } 
     1599                for (int i = 0; i < darkorTu.Count; i++) 
     1600                { 
     1601                    AItukikohdat.Add(darkorTu[i]); 
     1602                } 
     1603                break; 
     1604            default: 
     1605                break; 
     1606        } 
     1607 
     1608    } 
     1609    Image Tempe = LoadImage("tempelar"); 
     1610    void Luotempelar() 
     1611    { 
     1612        Sotilas Tempelar = new Sotilas(4, 4, 150); 
     1613        Tempelar.vahinko = 50; 
     1614        Tempelar.armor = 4; 
     1615        Tempelar.nopeus = 2; 
     1616        Tempelar.hyökkäysaika = 0.9; 
     1617        Tempelar.Mhinta = 175; 
     1618        Tempelar.Khinta = 100; 
     1619        Tempelar.koulutusaika = 5; 
     1620        Tempelar.Image = Tempe; 
     1621        Tempelar.Rotu = "Elf"; 
     1622        Tempelar.Tag = "raskas"; 
     1623        felidiS.Add(Tempelar); 
     1624    } 
     1625    Image Temp = LoadImage("tempelar archives"); 
     1626    void luoTempelararch() 
     1627    { 
     1628        rakennus TempArchives = new rakennus(30, 30); 
     1629        TempArchives.Mhinta = 250; 
     1630        TempArchives.Khinta = 150; 
     1631        TempArchives.Tag = "ATra"; 
     1632        TempArchives.Rotu = "Elf"; 
     1633        TempArchives.Image = Temp; 
     1634        TempArchives.rakennusaika = 120; 
     1635        felidiR.Add(TempArchives); 
     1636 
     1637    } 
     1638    Image leg = LoadImage("legionaire"); 
     1639    void luoLeego() 
     1640    { 
     1641        Sotilas leego = new Sotilas(2, 2, 100); 
     1642        leego.koulutusaika = 1; 
     1643        leego.armor = 0; 
     1644        leego.Rotu = "Elf"; 
     1645        leego.nopeus = 5; 
     1646        leego.range = 20; 
     1647        leego.vahinko = 7;//TODO: vaihda 7 
     1648        leego.hyökkäysaika = 1.4; 
     1649        leego.Tag = "peruss"; 
     1650        leego.Image = leg; 
     1651        felidiS.Add(leego); 
     1652    } 
     1653    Image arckuva = LoadImage("archery range"); 
     1654    void archerf() 
     1655    { 
     1656        rakennus arcery = new rakennus(20, 20); 
     1657        arcery.Tag = "rangedK"; 
     1658        arcery.rakennusaika = 50; 
     1659        arcery.Mhinta = 150; 
     1660        arcery.Khinta = 75; 
     1661        arcery.Image = arckuva; 
     1662        arcery.Rotu = "Elf"; 
     1663        felidiR.Add(arcery); 
     1664    } 
     1665    void LuoELarch() 
     1666    { 
     1667        Sotilas ArcherE = new Sotilas(2, 2, 60); 
     1668        ArcherE.vahinko = 40; 
     1669        ArcherE.Mhinta = 125; 
     1670        ArcherE.Khinta = 50; 
     1671        ArcherE.koulutusaika = 30; 
     1672    } 
     1673    Image legf = LoadImage("legfort"); 
     1674    void Legionfort() 
     1675    { 
     1676        rakennus legfor = new rakennus(25, 25); 
     1677        legfor.Tag = "kouluttaja"; 
     1678        legfor.Mhinta = 150; 
     1679        legfor.rakennusaika = 1; 
     1680        legfor.Rotu = "Elf"; 
     1681        legfor.Image = legf; 
     1682        felidiR.Add(legfor); 
     1683    } 
     1684    void AIhyök() 
     1685    { 
     1686        AIL(); 
     1687    } 
     1688    Brain ai() 
     1689    { 
     1690        //TODO: mikä tagi? 
     1691        FollowerBrain AI = new FollowerBrain("randomtagi"); 
     1692        AI.Speed = 30; 
     1693        for (int i = 0; i < Sotilaat.Count; i++) 
     1694                { 
     1695            if (Sotilaat[i].IsAddedToGame) 
    11821696            { 
    1183                 valitutRakennukset.Add(rakennuus[i]); 
     1697                AI.ObjectsToFollow.Add(Sotilaat[i]); 
    11841698            } 
    1185         } 
    1186         Timer jastin = new Timer(); 
    1187         jastin.Interval = 0.5; 
    1188         jastin.Timeout += delegate { Rakvalitsin.Destroy(); }; 
    1189         jastin.Start(1); 
    1190          
    1191     } 
    1192  
     1699            else if (Sotilaat[i].IsDestroyed) 
     1700            { 
     1701                AI.ObjectsToFollow.Remove(Sotilaat[i]); 
     1702            } 
     1703                } 
     1704 
     1705        return AI; 
     1706    } 
     1707    void AIL() 
     1708    { 
     1709        for (int i = 0; i < darkorS.Count; i++) 
     1710        { 
     1711            for (int j = 0; j < AIaloituspaikka.Count; j++) 
     1712            { 
     1713                if (darkorS[i].Tag.Equals("peruss")) 
     1714                { 
     1715                    Vector V = new Vector(0, 30); 
     1716                    darkorS[i].Position = AIaloituspaikka[j].Position + V; 
     1717                    Add(darkorS[i]); 
     1718                    ISotilaat.Add(darkorS[i]); 
     1719                } 
     1720            } 
     1721        } 
     1722    } 
    11931723} 
  • 2013/23/LeoL/Lord_Of_the_Swords/Lord_Of_the_Swords/Lord_Of_the_SwordsContent/Lord_Of_the_SwordsContent.contentproj

    r3990 r4022  
    101101      <Processor>TextureProcessor</Processor> 
    102102    </Compile> 
    103     <Compile Include="reaper\Reaper.1.png"> 
     103    <Compile Include="Reaper.1.png"> 
    104104      <Name>Reaper.1</Name> 
    105105      <Importer>TextureImporter</Importer> 
     
    222222    <Compile Include="warpgate.png"> 
    223223      <Name>warpgate</Name> 
     224      <Importer>TextureImporter</Importer> 
     225      <Processor>TextureProcessor</Processor> 
     226    </Compile> 
     227  </ItemGroup> 
     228  <ItemGroup> 
     229    <Compile Include="archery range.png"> 
     230      <Name>archery range</Name> 
     231      <Importer>TextureImporter</Importer> 
     232      <Processor>TextureProcessor</Processor> 
     233    </Compile> 
     234  </ItemGroup> 
     235  <ItemGroup> 
     236    <Compile Include="elvenhouse.png"> 
     237      <Name>elvenhouse</Name> 
     238      <Importer>TextureImporter</Importer> 
     239      <Processor>TextureProcessor</Processor> 
     240    </Compile> 
     241    <Compile Include="farm.png"> 
     242      <Name>farm</Name> 
     243      <Importer>TextureImporter</Importer> 
     244      <Processor>TextureProcessor</Processor> 
     245    </Compile> 
     246    <Compile Include="legionaire.png"> 
     247      <Name>legionaire</Name> 
     248      <Importer>TextureImporter</Importer> 
     249      <Processor>TextureProcessor</Processor> 
     250    </Compile> 
     251    <Compile Include="legfort.png"> 
     252      <Name>legfort</Name> 
     253      <Importer>TextureImporter</Importer> 
     254      <Processor>TextureProcessor</Processor> 
     255    </Compile> 
     256    <Compile Include="tempelar.png"> 
     257      <Name>tempelar</Name> 
     258      <Importer>TextureImporter</Importer> 
     259      <Processor>TextureProcessor</Processor> 
     260    </Compile> 
     261    <Compile Include="voidtower.png"> 
     262      <Name>voidtower</Name> 
    224263      <Importer>TextureImporter</Importer> 
    225264      <Processor>TextureProcessor</Processor> 
Note: See TracChangeset for help on using the changeset viewer.