From 7b25154e8eb2a255f15f1578cf10c7ac9f82c007 Mon Sep 17 00:00:00 2001 From: Talon Date: Mon, 19 Apr 2021 19:49:13 +0200 Subject: [PATCH] Spawn a whole bunch of ships --- .vs/EvilSatellites/v16/.suo | Bin 103936 -> 106496 bytes EvilSatellites/Radar.cs | 2 +- EvilSatellites/SatelliteSpawner.cs | 42 +++++++++++++++++++++++++++ EvilSatellites/Screens/GameScreen.cs | 14 +++++++-- 4 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 EvilSatellites/SatelliteSpawner.cs diff --git a/.vs/EvilSatellites/v16/.suo b/.vs/EvilSatellites/v16/.suo index 5064af05f9f76ea5fd1a58103d7643fa7d882185..76ca56741248957da8ca403dba87fc56a69fc2d3 100644 GIT binary patch delta 3315 zcmcIm3sjWX5&q}jgBJS7T25;2H8MJ0uekC+~m z>@q30Rgaog(Hi4}Us**H7vGO4^r2S5QPL{m^nj5FHYO^ayFvtWJZ(u6WUu#HG-GP;br?m8I$R;f40H_auv=U$wgaw|t+cHsCGMf36n5YW zWhm^#!^*c|yEJ0Z_oAN?1Yr=7is%XL&#A8sCYhScrFhkTFy^W&9ZoCx`ND{J1hC6N zFFqD<+2B%W#_qvo;v*WUOU3U6e4s9cFR;k543=QGV-KjMZl?wquw3eLS)+F6JEoCA z-oHV82GK$yH27)MT$n?Hr9`=0Xz_EGb0IeS?RGVhgb!Y$UPpA1XczurWVta{ZvQzA zXs+i9?=eDksm7lYMsAELRx0@_tC_+ey<9wN^W#E8Cq2(qwk%`IRDS1w5RhT?QlSZtG`Bnsj^e{F`US=Sx^avWF z2@6MGTDN=1x`Nx<$dB5-I-)nfTU>ug8!5}{h^-qFz2PMBaMm+qkX`PLQ^fl?Hgv81 zRDO}mF<4Xwe$uv2SEr5iVvoD)_WaWQ?Zev0++)T`5eZqR50K7@RcEdw4=YGAlg_B= z@9o&~v|ERrQ|N8B^ z8`{W(Bbzms?KOYnPGn}SIP~b@`V0Rcc}aU-%Kq9nN9{d?d*Vl8Tf8r76WqP4M|)pu zn4EuV4w=8;)Toy}cDy&2_=oe}%AB_HR@+yfVMW3uY)m+SmPEPIJ2@+7;nLznj7^+a znWRH~qC1FqFliLF#Au|nq-|jG6-_B_m2=N~NEEjIxi!=H2+!Cd@dR_N z9vqR}V9FIu0b*t0axo%aT3I+<0W-0_WGsNxQ8HW!v3Ow3e%Od6rkRqs|@Mt%f3{!Zncdy&k7k@3~s0~ zXmFfCRby-yojG=26J+!jgiv83y-QeU3jBgu-T`mi^tvxAoeq(9;qijtOp_Yn9DccV zgF``jVPTZ0^sNH8IJ?Lzi|QvuyWI85s$J6IL?JqbdLcr z^?ESARaM14aEI}vQh|+Il(^*PBodxOx80v&d36PDY754?jTLBV)?%Qkig~y~uw=jW z_aFtD>_w@(x*RB;RZ`X;0Z{w#R$Sgw!8$_0Q40FRD8dVJ@hWIAqW%Qaxx(P8;c(Aw z2hXmxwVbG>ejL%X7cF*mPV7r=B2R8+en3XSEd1z5h|7y6><3KX_}eouy!928hPD~W zw>oW&RoU0J_+-xnoO3_iR4d}G`(F6w{h9daehOT)D%@*wz>7?a88-@5KPqAEODN&v z+hpi?>s8cmaYc`&lxI0*QNy6xbW)A=(ggN1FL1>_cL!kZmNYZvJ_w}FyEX927>g|( zPR$Q^w)cPv$@h*H7%l*7zRj~e!5eriY@A4KJkxqXB?p3(dOZ}-=4zFh;4u~?o2&I; zPI80Ipb8?z5!~j}m~iDKH^TvrS)rBmPiJ7HSRq-OhX5wER!E!L$bidVI)P2}BDv<^ zROs_o>S+pkDz>8Uj44;=G@Y{jq z$AgPq#1FN9q3@X1LVs4=70;E#Q(&qGUJ{x42>Xs=Z<7D7rII1To+cHxw~nQ1Isd|n zNtJ~2mfR^CWvA|BEMb8W}cMPRSIS* zpKHKYd4P}9@%Lsx*uU0HmtF~R)xV|++X+~|cQKyY7i?B6gl!@SOcw<@W{Ck`cJmz= z#w>iOx5}bH&n(ly@@#e&%~E6a(GX5cVJ3u|bu&N@gHjq)lmkJ?=W|0?OAKhL;=mt` ztK69`j+>lGY9q~%4`*!HNj-$1W0eQTp48qt;#o-rRHeWaREDdECenZ4^WSYj@S{Bp z{4-l*4qFc1vh6ZNr`Z3tv;{HZ#xv z4XjsT!s2{$>KYJ%8IsB5vK7!~UmHtynVtu#B^gp#-8#_nz4v&AmA9GreF*z_Rh0qWqlamCTKCpoQuWLFDvrUZ6Ko delta 2617 zcmd5-dr*{B6#vfM1$IGnK_NtmHzF!5DyUexJQOu0U5GRvfDQ^ic=<{z1jSbf!k*ll zMhJ^aDn8l|_*PV06d1J>GDw{Al__ePI0C7uba%xW$I<>Nt8eBv_k8!9d(ZEl^Sg7? z^rmSgru)Yea6o6`Xp&?;X|4|@6Qz{v%W<5T0cEp1i&_bo>e$as8+<780)KQD2fGKc ziH^?Cp4p`gKAm%NHcns|nmehN<>O~jY%Ievv8(0q&M-p)2fQjC1TMLgx~r1JC^tC- zJl-~mddf(uzpvWt<98PN;9?T?5>~}*2Lmg!R4Bq_lHsro%Ovwa!#hj=AbfB0UqIEh zS^_NUEe6A3_|_g>Kx0Q#)~(Q$Z?mq07u^{${P6vCDvu1CCyepiY@LE(JHrl!6S&zU z6Ne@q&rRx~^<e$&+b#g+!moO)#hdmHZ`T_T`|xmHhx*@qX!#KTw%LFt$l#hBI(>Q zoUZIOTB*x(I%Vn9bc`+9(bwgNx}hn@-eY-BSl6fVyRBLxneA#-*Sh+!_~cO*^I*!H z*pTHHuQyl9gV2x2eD+-5tEj*&N`DlG%dkONqKdG?$>IHtRUZ``J`pcP3`Tvp0xyko z;-e!9K$UR3=kt{>XQdDrPBI+8%Lyal3Hm11VUE-^L9(c`0i(@O zU#HN1Y$4$->f1mS(E6+s{NlB%OpMhw7on(q5~;6H<@CUtt8Fo@JrW~xym&>!b4Ly1#GgCvCO6$ z0VK4q2>kht#g+u4b{S3Xsqck)JL6+6@+nz>!||htK(4H--b&TruRAW8B3HCV{Mi9zu*O)BqgE zDxJTkobXj=)4|q>d7gf6>W4AIlOd#%g~ShN)ZNK03ZCgv&NL=UzCFIeYfP3wZ~q_V z9x4!FuEvd(y9s6IM&O7uQtWZ#nMnF*j>^zh+hG;gc|yaG$Y9AkHn#zdbp~CVUwM)&SMU zx%FjBF+*BpUs62p+*~bswb*Hl zFKptSnq2-u>IU8~6ObReY42LCHOR*JwH(=J7%96)TV987x&y+dXycXc^8F*@MV*hn zcihqO?%cm2DGP#7=qwzZ2^U59byL6#;zD&pdhwRoK=5=!Bra&2@G7BECbU)bd>r(o zd>mv8fpcIAVBqvrA$2Zfh$(poMo>i}hz%O$QfS~9c!L&%f*6xadkblaFosCxaSON@ zE`_7Av0z89CxZghKd}=ODWC^%7a$BeL^S;a@SrU|Afu7dEXB)|{cgDuY5{U+@)TGq zT#AIFfXR(x&HCwkv)t~&?r2zP)P1pL9Xr{JWz8~FV~wdaabf(T_{4;m`83%Zl(b+D zd*}Y?1J#&3N7G5P<5TFOUIQC!*<&}0J#d4#5YC%f3%S#^(^jpd@>EE|C7v?DB@-@~ M8zP09Uw|$76N?)lfB*mh diff --git a/EvilSatellites/Radar.cs b/EvilSatellites/Radar.cs index fbe9b7e..77edaef 100644 --- a/EvilSatellites/Radar.cs +++ b/EvilSatellites/Radar.cs @@ -49,7 +49,7 @@ namespace EvilSatellites public void Update(List objects) { if (objects.Count < 1) return; - float minDistance = 1000; + float minDistance = 50000000; Target = null; foreach (var obj in objects) { diff --git a/EvilSatellites/SatelliteSpawner.cs b/EvilSatellites/SatelliteSpawner.cs new file mode 100644 index 0000000..d8fd901 --- /dev/null +++ b/EvilSatellites/SatelliteSpawner.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Xna.Framework; +using EvilSatellites.Objects; +using EvilSatellites.Screens; + +namespace EvilSatellites +{ + public class SatelliteSpawner + { + public GameScreen Screen; + private Random rnd = new Random(); + private int Level; + public SatelliteSpawner(GameScreen screen) + { + Screen = screen; + Level = 1; + } + + public void Spawn() + { + for (var i = 0; i < Level*20; i++) + { + var player = Screen.Objects.Where((x) => x.Type == ObjectType.Player).FirstOrDefault(); + var x = player.Position.X-250f + (float)rnd.NextDouble() * 500; + var y = player.Position.Y - 250f + (float)rnd.NextDouble() * 500; + var z = player.Position.Z - 250f + (float)rnd.NextDouble() * 500; + // DavyKager.Tolk.Speak("Spawning sat at " + x.ToString() + ", " + y.ToString() + ", " + z.ToString()); + var sat = new Satellite(Screen, new Vector3(x, y, z)); + Screen.AddObject(sat); + } + } + + public void Update() + { + + } + } +} diff --git a/EvilSatellites/Screens/GameScreen.cs b/EvilSatellites/Screens/GameScreen.cs index 5675a23..f62db19 100644 --- a/EvilSatellites/Screens/GameScreen.cs +++ b/EvilSatellites/Screens/GameScreen.cs @@ -23,15 +23,18 @@ namespace EvilSatellites.Screens private float Theta = 0; private Player _player; private Radar ObjectRadar; + private SatelliteSpawner Spawner; public void Activate() { State = ScreenState.Active; Player player = new Player(this); Objects.Add(player); _player = player; - Satellite prop = new Satellite(this, new Vector3(5000, 5000, 5000)); - Objects.Add(prop); + // Satellite prop = new Satellite(this, new Vector3(5000, 5000, 5000)); + // Objects.Add(prop); ObjectRadar = new Radar(_player, this); + Spawner = new SatelliteSpawner(this); + Spawner.Spawn(); return; } @@ -83,7 +86,7 @@ namespace EvilSatellites.Screens private void UpdateRadar() { var candidates = objtree.Find(_player.Position, new Vector3(1000, 1000, 1000)); - ObjectRadar.Update(candidates); + ObjectRadar.Update(Objects); } public void HandleInput(GameTime gameTime, KeyboardState inputs) @@ -176,6 +179,11 @@ namespace EvilSatellites.Screens Tolk.Output("Satellites"); } } + + if (Input.IsJustPressed(Keys.O)) + { + DavyKager.Tolk.Output(Objects.Count.ToString()); + } } private void CheckCollisions()