Changeset 4022 for 2013/23/LeoL/Lord_Of_the_Swords
- Timestamp:
- 2013-06-07 13:25:31 (9 years ago)
- 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 9 9 using Jypeli.Widgets; 10 10 using Physics2DDotNet.Ignorers; 11 interface Valittava 11 12 public interface Valittava 12 13 { 13 14 void Hyokkaa(int vahinko); 15 bool Kuollut(); 16 Vector GetPosition(); 17 double Koko(); 14 18 } 15 [Serializable] class Aloituspaikka : PhysicsObject, Valittava 19 20 class Aloituspaikka : PhysicsObject, Valittava 16 21 { 17 private IntMeter elamaLaskuri = new IntMeter(2000, 0, 2000);22 private int elämät { get; set; } 18 23 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 } 20 49 public Aloituspaikka(double leveys, double korkeus) 21 50 : base(leveys, korkeus) 22 51 { 23 52 this.MakeStatic(); 24 el amaLaskuri.LowerLimit += delegate { this.Destroy(); };53 elämät = 2000; 25 54 ObjectID = 1; 26 55 } … … 28 57 29 58 } 30 public class DeepCloneClass 59 60 61 class tukikohta : Aloituspaikka 31 62 { 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; } 48 64 public int Mhinta { get; set; } 49 65 private int raksaK { get; set; } … … 51 67 : base(leveys, korkeus) 52 68 { 69 elämät = 1500; 53 70 raksaK = 1; 54 ElamaLaskuri.DefaultValue = 2000;55 ElamaLaskuri.MaxValue = 2000;56 ElamaLaskuri.Reset();57 71 this.MakeStatic(); 58 ElamaLaskuri.LowerLimit += delegate { this.Destroy(); };59 72 Mhinta = 400; 60 73 ObjectID = 1; … … 64 77 65 78 } 66 [Serializable]class rakennus : tukikohta79 class rakennus : tukikohta 67 80 { 68 81 public new int Mhinta { get; set; } … … 152 165 class työlainen : PhysicsObject, Valittava 153 166 { 167 public string Rotu { get; set; } 154 168 public int koulutusaika { get; set; } 155 169 public int Mhinta { get; set; } … … 163 177 public int supplycost { get; set; } 164 178 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 } 166 200 public työlainen(double leveys, double korkeus) 167 201 : base(leveys, korkeus) … … 186 220 class Sotilas : PhysicsObject, Valittava 187 221 { 222 public string Rotu { get; set; } 188 223 public int vahinko { get; set; } 189 224 public int ObjectID { get; set; } … … 201 236 public double hyökkäysaika { get { return ase.FireRate; } set { ase.FireRate = value; } } 202 237 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 204 288 205 289 public Sotilas(double leveys, double korkeus, int elämiä) … … 207 291 { 208 292 this.IgnoresGravity = true; 209 Liikkumistila = 0; 210 liikkumiset = new List<Vector>(); 211 GameObject liikkumispiste = new GameObject(20, 20); 293 Liikkumistila = 0;; 212 294 ObjectID = 2; 213 295 ase = new AssaultRifle(1, 1); … … 219 301 elämät = elämiä; 220 302 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) 225 308 { 226 309 Sotilas uusi = new Sotilas(sotilas.Size.X, sotilas.Size.Y, sotilas.elämät); … … 234 317 uusi.Brain = sotilas.Brain; 235 318 uusi.armor = sotilas.armor; 319 uusi.Rotu = sotilas.Rotu; 236 320 uusi.koulutusaika = sotilas.koulutusaika; 237 321 uusi.hyökkäysaika = sotilas.hyökkäysaika; … … 242 326 243 327 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); 247 333 aivot.Speed = nopeus; 248 334 aivot.DistanceFar = visibility; … … 251 337 252 338 253 //hyökkäysaivot.TargetClose += Hyökkää();339 aivot.TargetClose += delegate { Hyökkää(aivot); }; 254 340 return aivot; 255 341 256 342 } 257 343 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 } 262 354 263 355 } … … 281 373 Image Kaupunkikuva = LoadImage("kaupunki"); 282 374 Image Corek = LoadImage("core"); 283 Image Raperkuva = LoadImage("Reaper 1");375 Image Raperkuva = LoadImage("Reaper.1"); 284 376 Image CitadelK = LoadImage("citadel"); 285 377 Image CrystalK = LoadImage("kristalli"); … … 307 399 List<tukikohta> Ptukikohdat = new List<tukikohta>(); 308 400 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; 309 431 IntMeter Pmetallit; 432 IntMeter PsupplyC; 433 IntMeter PsupplyU; 310 434 public override void Begin() 311 435 { … … 325 449 { 326 450 Pmetallit = new IntMeter(50); 327 451 Pkristallit = new IntMeter(0); 328 452 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; 331 455 pisteNaytto.TextColor = Color.Black; 332 pisteNaytto.Color = Color.White; 456 333 457 334 458 pisteNaytto.BindTo(Pmetallit); 335 459 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); 336 470 } 337 471 void Valikko() … … 391 525 ruudut.SetTileMethod(Color.Black, Pelaaja); 392 526 ruudut.SetTileMethod(Color.White, kaupunki); 393 //ruudut.SetTileMethod(Color.Yellow, Ylämaa );394 527 ruudut.SetTileMethod(Color.FromHexCode("FF00D4"), reuna); 395 528 ruudut.SetTileMethod(Color.FromHexCode("FFFF00"), Metalli); … … 397 530 ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), Luovuori); 398 531 ruudut.SetTileMethod(Color.FromHexCode("808080"), AIaloitus); 399 //FF0010400 532 ruudut.SetTileMethod(Color.FromHexCode("FF0010"), hevoset); 401 402 533 ruudut.Execute(20, 20); 403 404 534 Rotualustus(); 405 535 AIalustus(); 406 536 Level.BackgroundColor = Color.DarkForestGreen; 407 537 Pmetallilaskuri(); … … 504 634 Aloituspaikka aiAP = annaAIaloitus(leveys, korkeus); 505 635 aiAP.Position = paikka; 636 AIaloituspaikka.Add(aiAP); 506 637 Add(aiAP); 507 638 } … … 510 641 Aloituspaikka annaAIaloitus(double leveys, double korkeus) 511 642 { 512 Aloituspaikka paikka = new Aloituspaikka( leveys, korkeus);643 Aloituspaikka paikka = new Aloituspaikka(40, 40); 513 644 514 645 switch (AIrotu) … … 516 647 case "felidi": 517 648 paikka.Image = CitadelK; 518 paikka.Tag = "AIluoja"; 649 650 paikka.Tag = "luojaAI"; 519 651 for (int i = 0; i < 7; i++) 520 652 { 521 Lisätäänyksiköitä ();653 LisätäänyksiköitäAI(); 522 654 } 523 655 break; 524 656 case "Human": 525 657 paikka.Image = Kaupunkikuva; 526 paikka.Tag = " AIluoja";658 paikka.Tag = "luojaAI"; 527 659 for (int i = 0; i < 7; i++) 528 660 { 529 Lisätäänyksiköitä ();661 LisätäänyksiköitäAI(); 530 662 } 531 663 break; 532 664 case "darkor": 533 665 paikka.Image = Nexuz; 534 paikka.Tag = " AIluoja";666 paikka.Tag = "luojaAI"; 535 667 for (int i = 0; i < 7; i++) 536 668 { 537 Lisätäänyksiköitä ();669 LisätäänyksiköitäAI(); 538 670 } 539 671 break; 540 672 case "Demoni": 541 673 paikka.Image = Hatchkuva; 542 paikka.Tag = " AIluoja";674 paikka.Tag = "luojaAI"; 543 675 break; 544 676 … … 624 756 Keyboard.Listen(Key.F, ButtonState.Pressed, rotuTarkistusRakennaT, "Rakentaa supplyn", "make"); 625 757 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"); 626 760 Mouse.Listen(MouseButton.Left, ButtonState.Pressed, valitseyksiköt, "Valitsee sotilaat"); 627 761 Mouse.Listen(MouseButton.Left, ButtonState.Released, suoritaValinta, "ad"); 628 762 Mouse.Listen(MouseButton.Right, ButtonState.Pressed, suoritaKomento, "ad"); 629 Mouse.Listen(MouseButton.Middle, ButtonState.Pressed, valitseRakennus, "valitsee rakennuksen");630 763 Keyboard.Listen(Key.A, ButtonState.Pressed, valitsekaikki, "valitsee kaikki yksikköt"); 631 764 } … … 636 769 { 637 770 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)) 641 774 { 642 775 rakennaT(tag, DR, Prakennus[i].rakennusaika, Prakennus[i].Image); 643 776 } 644 if (Prakennus[i].Tag.Equals("kouluttaja")) 645 { 646 voidc(); 647 Summoner(); 648 } 777 649 778 } 650 779 break; … … 652 781 for (int i = 0; i < Prakennus.Count; i++) 653 782 { 654 if (Prakennus[i].Tag. Equals(tag))783 if (Prakennus[i].Tag.ToString().StartsWith(tag)) 655 784 { 656 785 rakennaT(tag, DR, Prakennus[i].rakennusaika, Prakennus[i].Image); … … 658 787 } 659 788 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; 660 807 default: 661 808 break; … … 664 811 } 665 812 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 } 667 890 void rakennaT(string tag, Image kuva, double aika, Image valmisKuva) 668 891 { … … 678 901 if (rak == null) return; 679 902 rakennus uusi = rakennus.LuoUusi(rak); 680 // AddCollisionHandler(uusi, TarkistusRakennusTilasta);903 // AddCollisionHandler(uusi, TarkistusRakennusTilasta); 681 904 uusi.Position = point; 682 905 Add(uusi); … … 710 933 } 711 934 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 712 946 713 947 void sijoitus(int raksa) … … 809 1043 for (int i = 0; i < Ptyöläiset.Count; i++) 810 1044 { 811 if (Ptyöläiset[i].Tag. Equals("työläinen"))1045 if (Ptyöläiset[i].Tag.ToString().StartsWith("työläinen")) 812 1046 { Add(Ptyöläiset[i]); } 813 1047 } 814 1048 815 1049 } 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 } 817 1064 void insinoori() 818 1065 { … … 824 1071 inssi.Position = Paloituspaikka[i].Position - V; 825 1072 } 826 Ptyöläiset.Add(inssi);1073 humanT.Add(inssi); 827 1074 828 1075 } … … 840 1087 } 841 1088 Spawn.Image = Spawnk; 842 Ptyöläiset.Add(Spawn);1089 darkorT.Add(Spawn); 843 1090 844 1091 } … … 876 1123 Reaper.visibility = 100; 877 1124 Reaper.vahinko = 10; 1125 Reaper.nopeus = 40; 878 1126 Reaper.IgnoresGravity = true; 879 1127 Reaper.Image = Raperkuva; 880 Reaper.Tag = " reaper";881 PSotilaat.Add(Reaper);1128 Reaper.Tag = "peruss"; 1129 darkorS.Add(Reaper); 882 1130 883 1131 } … … 888 1136 889 1137 } 890 void Voidwalker( Vector paikka, double leveys, double korkeus, int elämiä)1138 void Voidwalker() 891 1139 { 892 1140 Sotilas voidwalker = new Sotilas(2, 2, 200); … … 897 1145 voidwalker.Tag = "voidwalker"; 898 1146 voidwalker.IgnoresGravity = true; 899 PSotilaat.Add(voidwalker);1147 darkorS.Add(voidwalker); 900 1148 } 901 1149 … … 903 1151 { 904 1152 työlainen worker = new työlainen(2, 2); 1153 worker.Tag = "työläinen"; 905 1154 for (int i = 0; i < Paloituspaikka.Count; i++) 906 1155 { 907 1156 Vector V = new Vector(100, 0); 908 1157 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); 912 1162 } 913 1163 void luoparakit() … … 919 1169 Barracks.Image = parakkikuva; 920 1170 Barracks.Tag = "kouluttaja"; 921 Prakennus.Add(Barracks);1171 humanR.Add(Barracks); 922 1172 923 1173 } … … 931 1181 Voidcore.Image = VCIM; 932 1182 Voidcore.Tag = "ATra"; 933 Prakennus.Add(Voidcore);1183 darkorR.Add(Voidcore); 934 1184 935 1185 } … … 939 1189 fortress.Position = paikka; 940 1190 fortress.Tag = "luoja"; 941 } 942 943 void kata(Vector paikka, double leveys, double korkeus) 1191 Ptukikohdat.Add(fortress); 1192 } 1193 1194 void kata() 944 1195 { 945 1196 Sotilas katapultti = new Sotilas(40, 40, 200); … … 949 1200 katapultti.nopeus = 5; 950 1201 katapultti.armor = 4; 951 PSotilaat.Add(katapultti); 1202 katapultti.Tag = "Siege"; 1203 humanS.Add(katapultti); 952 1204 } 953 1205 void drone() … … 956 1208 for (int i = 0; i < Paloituspaikka.Count; i++) 957 1209 { 958 Vector V = new Vector( 100, 0);1210 Vector V = new Vector(50, 0); 959 1211 if (Paloituspaikka[i].Tag.Equals("luoja")) 960 1212 Drone.Position = Paloituspaikka[i].Position - V; 961 1213 } 962 1214 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); 970 1216 } 971 1217 void kirves() 972 1218 { 973 1219 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 981 1220 kirvesmies.vahinko = 20; 982 1221 kirvesmies.Mhinta = 50; 983 1222 kirvesmies.visibility = 60; 984 1223 kirvesmies.nopeus = 30; 985 kirvesmies.Tag = " kirvesmies";1224 kirvesmies.Tag = "peruss"; 986 1225 kirvesmies.range = 20; 987 1226 kirvesmies.armor = 0; … … 989 1228 kirvesmies.Khinta = 0; 990 1229 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); 996 1235 Työpaja.elämät = 600; 997 1236 Työpaja.Mhinta = 200; 998 1237 Työpaja.Khinta = 100; 999 1238 Työpaja.rakennusaika = 120; 1000 Add(Työpaja);1239 humanR.Add(Työpaja); 1001 1240 } 1002 1241 Image GI = LoadImage("gateway"); … … 1010 1249 warpgate.Image = WP; 1011 1250 warpgate.Tag = "kouluttaja"; 1012 Prakennus.Add(warpgate);1251 darkorR.Add(warpgate); 1013 1252 } 1014 1253 void maatila() … … 1016 1255 rakennus farm = new rakennus(10, 10); 1017 1256 farm.Tag = "supply"; 1018 Prakennus.Add(farm);1257 humanR.Add(farm); 1019 1258 } 1020 1259 void linnan(Vector paikka, double leveys, double korkeus) … … 1022 1261 tukikohta linna = new tukikohta(80, 80); 1023 1262 linna.Position = paikka; 1024 Add(linna);1263 humanTu.Add(linna); 1025 1264 } 1026 1265 void luokristalli(Vector paikka, double leveys, double korkeus) … … 1068 1307 } 1069 1308 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++) 1071 1310 { 1072 1311 … … 1076 1315 } 1077 1316 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 } 1078 1325 } 1079 1326 Remove(valitsin); … … 1096 1343 valtsinJ.Shape = Shape.Circle; 1097 1344 valtsinJ.Color = Color.BloodRed; 1098 PMoverS.Add(valtsinJ.Position);1099 PmoverT.Add(valtsinJ.Position);1345 //PMoverS.Add(valtsinJ.Position); 1346 //PmoverT.Add(valtsinJ.Position); 1100 1347 Add(valtsinJ); 1101 1348 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; 1104 1352 for (int i = 0; i < Valitutsotilaat.Count; i++) 1105 1353 { … … 1108 1356 Vector suunta2 = new Vector(paikka.X - U.X, paikka.Y - U.Y); 1109 1357 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); 1111 1376 } 1112 1377 for (int i = 0; i < valitutTyöläiset.Count; i++) 1113 1378 { 1114 valitutTyöläiset[i].MoveTo(paikka 2, valitutTyöläiset[i].nopeus);1379 valitutTyöläiset[i].MoveTo(paikka, valitutTyöläiset[i].nopeus); 1115 1380 Vector V = new Vector(valitutTyöläiset[i].X, valitutTyöläiset[i].Y); 1116 Vector suunta = new Vector(paikka 2.X - V.X, paikka2.Y - V.Y);1381 Vector suunta = new Vector(paikka.X - V.X, paikka.Y - V.Y); 1117 1382 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); 1119 1385 } 1120 1386 } … … 1127 1393 kirves(); 1128 1394 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 } 1129 1413 break; 1130 1414 case "darkor": 1131 1415 Luocore(); 1132 1416 spawn(); 1417 Summoner(); 1133 1418 reaper(); 1419 voidc(); 1420 Voidwalker(); 1134 1421 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 } 1135 1438 break; 1136 1439 case "felidi": 1137 1440 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 } 1138 1462 break; 1139 1463 case "Demoni": 1140 1464 drone(); 1465 cave(); 1141 1466 break; 1142 1467 default: … … 1156 1481 core.raksaK = 2; 1157 1482 core.Image = Corek; 1158 Prakennus.Add(core);1483 darkorR.Add(core); 1159 1484 } 1160 1485 Image Sumk = LoadImage("Summoner"); … … 1168 1493 summoner.Tag = "hevostalli"; 1169 1494 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) 1182 1696 { 1183 valitutRakennukset.Add(rakennuus[i]);1697 AI.ObjectsToFollow.Add(Sotilaat[i]); 1184 1698 } 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 } 1193 1723 } -
2013/23/LeoL/Lord_Of_the_Swords/Lord_Of_the_Swords/Lord_Of_the_SwordsContent/Lord_Of_the_SwordsContent.contentproj
r3990 r4022 101 101 <Processor>TextureProcessor</Processor> 102 102 </Compile> 103 <Compile Include=" reaper\Reaper.1.png">103 <Compile Include="Reaper.1.png"> 104 104 <Name>Reaper.1</Name> 105 105 <Importer>TextureImporter</Importer> … … 222 222 <Compile Include="warpgate.png"> 223 223 <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> 224 263 <Importer>TextureImporter</Importer> 225 264 <Processor>TextureProcessor</Processor>
Note: See TracChangeset
for help on using the changeset viewer.