From 20e7ec66feb981005a15429097d5198969608ac1 Mon Sep 17 00:00:00 2001 From: Tony Grosinger Date: Wed, 27 Apr 2011 14:15:34 -0700 Subject: [PATCH] -Implemented randomly generated MoneyPiles -Continued implementing creation of drones and houses Signed-off-by: Tony Grosinger --- bin/net/grosinger/nomads/DroneListItem.class | Bin 5892 -> 6350 bytes bin/net/grosinger/nomads/DroneTeam.class | Bin 4333 -> 4771 bytes bin/net/grosinger/nomads/DroneTools.class | Bin 4455 -> 5632 bytes bin/net/grosinger/nomads/InitializeGame.class | Bin 5223 -> 5495 bytes bin/net/grosinger/nomads/MoneyPile.class | Bin 0 -> 935 bytes bin/net/grosinger/nomads/Nomads.class | Bin 3950 -> 4015 bytes bin/net/grosinger/nomads/Objective.class | Bin 0 -> 556 bytes bin/net/grosinger/nomads/Point.class | Bin 0 -> 709 bytes bin/net/grosinger/nomads/World.class | Bin 7255 -> 7508 bytes src/net/grosinger/nomads/DroneListItem.java | 9 ++ src/net/grosinger/nomads/DroneTeam.java | 12 +- src/net/grosinger/nomads/DroneTools.java | 104 +++++++++++++++--- src/net/grosinger/nomads/InitializeGame.java | 10 ++ src/net/grosinger/nomads/MoneyPile.java | 41 +++++++ src/net/grosinger/nomads/Nomads.java | 10 ++ src/net/grosinger/nomads/Objective.java | 15 +++ src/net/grosinger/nomads/Point.java | 30 +++++ src/net/grosinger/nomads/World.java | 17 ++- 18 files changed, 226 insertions(+), 22 deletions(-) create mode 100644 bin/net/grosinger/nomads/MoneyPile.class create mode 100644 bin/net/grosinger/nomads/Objective.class create mode 100644 bin/net/grosinger/nomads/Point.class create mode 100644 src/net/grosinger/nomads/MoneyPile.java create mode 100644 src/net/grosinger/nomads/Objective.java create mode 100644 src/net/grosinger/nomads/Point.java diff --git a/bin/net/grosinger/nomads/DroneListItem.class b/bin/net/grosinger/nomads/DroneListItem.class index 73453b39aec4da3973bf1a2025ad8edfc077c6bc..559032720099eb3d79588333d6533504d805fc0a 100644 GIT binary patch delta 1169 zcmZ{jTWnNS6o$XuIny&UoQ9#L69+m)8&Esm0va%CbSe<3NGmFgH752r9&2GbL#C&# zP?Ltl2gL^?C(-nQH)DO#lz~i4#R6VXQ0x7I*W&$tmjP_SwP%>>gTAbF{(r6YueJ8x z=iUn^7Kaa=92*CgD8r;m(d5}?)6OMb!Ma&pj@y3w1}EjVxQa#Rwzf8VlfKBDYwRAU z%wKNuw4%{F;;V07lg&7rukTJfA;x&dVw`n~fJm&j(|tnj<5`pa7T2{?8-o)4+~NyO87u8xR})`Zd|k?E%dW}xJDU2|;yX?G z+p;5bQOcF1Zq0MJ;{e8J@+m$X-xFFL&+}=4`@?4Yh#a|~ z&jihYF9jHt$TtG~74W@)>I(QtKseAoa%WlMR}E)^e+ZJ84t4C}@F)SoGFglwjhsVV z{CQl$GVzzv!V2*#X_IA(+`z5eCccvm^oY+ez!r+$MEzNdkDrpgmC12!imd(*bDic& zMn}CfBhk=_%JNg*^2iknPmIc8hKb7SD#}D>(=0yD#qyUHWugSjOWo#s`4_;d@@rg(nT8#t|iZKC=xNuPr5(a^w0fLx7#R?*|Se}yT0v9fn zB`-1YFL0${FpWV#a6m=Gc^)b_5C4MVcU#Iz-{OAf_nnh_&pr3e6`bB|%={Uh08ofu zI^qPfEU%t5RM>9Mk^aDOU+w-*Uz=HM3h22N{PG$c5V$IF61^%Kw?-WsQtXVbOJpF^ zfqvYSxP@t}ZiT1sj>KJD6i6&KO>f&_JG1vBW|gItd3#J{%t<_m)YJs3d7`o&Njz3o zLQNoOb|~km#IuOACvYt4ypVVqbxfbPOVzxVc%vM>zPml>J;0rk`|(cVy)v~%UyrHd zgOw$-Q$I>LRj&j1ta|+-P>`F~Y_;myBd6r7&CZjdaVVWu{hHE3cL zs5OL9*Afl8NMl1Rk4HJz5*U^}HNT+?)gpj8(T!$t6fGi%L!t*2tZ+v+Mke1;-L5pP`5)xwYgpe46=LEwRqgRTSb8ksYsiqN34VJ(LgRkvE7;CYS_X#5( zTTw*aj$)Kj%TR+l>Tc{q3$>NE^iz+Z7bg(5{Arnci?FI($NVBvAgF2yqv{{aF6Bj* zNY=3N`Oa`)>o}Yd4oOfehp`YF%O@)-ZAbRPAm?ZxoyB4Hnu9#58(XlAS_BVvM*3Lq inP0@}|98OW_{#m`@D1Oo$&3bg;tx+c|2cu5p7g&$InTfV diff --git a/bin/net/grosinger/nomads/DroneTeam.class b/bin/net/grosinger/nomads/DroneTeam.class index 98562c90069b38eb364d52c596f1e721d331f56e..a44c47eac2ab7bc30dd05562aebbd0337fdbb0c7 100644 GIT binary patch delta 791 zcmXw%$xjqP6vlrw^h{yXh9#g53PMH{5o4kUlQEJIy$p%C;X;Te?Kl!}U<@27`o6bSeJkxP%lY(Y^gXbYj~bt%*s0Da z?5}7D7>ZTp&Us%rZ(X9PHML^lW|IsKSafjE=?a934s%pn-tmrfa!rap)kv696=oLwbRk||wyhVf>6NgKh zi;9pGQs8v!9Cg{btMlhwwYWx&B9M%wHbqvOC~jD+C)cEh2F)!+p(k0MF4rW)9gDlH zQ5d4w>an(a-uo60{(I}E(Z^%WBgJe_TU489v3E)bPk5@Z?7gvMq9wK^(H7sSm?OiO zk()lOFnP{P&5Nm=#c8j_EBX~#l5Xve=2$dUol?v%k3>A7WBR5C6`Ap-WGa%1wRkWQ zwNp)r)~V2e$vF>x(O-4PK4~uxR3iaduy>J5rOWOz)-gWClf2Q5D%@zmv%ix%nxKUj&(;l;1MtKa?xQGUa2XGN@I4 z>Xc@i%4C-^X;)bki+Y2or8nkMBD;qMq+1311P(GJ$umjt8dttv7IB7oBk6L%*0PYdBKGr60$CDdQu$t#jp8XG$}$WBecF CKCkKk delta 539 zcmX|;%WD&16vcnvWSXy;4rs*?71Ab#G%_0MW7XoODB=`s6?Gx5hBAa|43Z44)L36p zTc6{rzO`!H7A3Y7f@}9~{2$yZzP%H{)jfRoobTLo?_BNiAZ!r_mE=RO>B9pREZ0aG;H5->viyPe3gkf8+8@k07 zMNi4E_*F0P_q*F8-W{8}j4I+aKai(Lf6rzQy^8MgWG!$5|H$j{#3x$r` z#NF##Y-n+Oml~6D>OJ|fCM$={)n<$HO{{-ty6CjHvdC3~;sVzfxoz-{+yUjhVO7z2 zOJUe_BFXGL29`J^X>@A8L^DZumT5zsFLd)&THl27ofJRl=Ok9aJ%NlB6+W-In diff --git a/bin/net/grosinger/nomads/DroneTools.class b/bin/net/grosinger/nomads/DroneTools.class index e034ab50a146397643e6e7b6c0380719495f5ab9..c73747e56e7cf65f8fb9dec20ce402e7f9e80751 100644 GIT binary patch literal 5632 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 BUfuuz delta 1864 zcmZ`)>r+%^82`PyXU|!74{{Ua$TBXXBMT-)g|!6=rG$xSAhux2VfUz9mzI^nuoW*@ zRw}(o66J+V%&5H3dSObNX{M$Rji37m{L)O{%W-<%b5>eLot<;u+jE}Z^ZPx|^X|Uo zcNeGre*flA0Lt)#0vq2X<#MmhakfN4i2ak@gV7(js3= z3$L=}cx&`-qrR=f2u5FUf#Dg3)P|@Y?5xv!8}+s>gKxH%N# z)Ltc_QxxqO@Kat07mVPFUEl?$CZcBx21 zJ0F)l&U$pJ=t4KYB{%al=_#%$cjR|f#ITS5t!Qk&iMG+@aHrrPh7}xQSSHZ;9p`-e zVZ6uhI?J6yI3iqrz)MqV!5K^_ zILnaUq4(>hqK>^vWGFD|%%iweFbnN7p?aOuWKdr!0>8ZiU= z22=bOcLmQ>SFo$3-FB9G^{i^Jm;pPb7w{FwQBgdN0x2|se41!+RMK8`nK+PI%YKDJ znzGZ6jO{3)_dFVbN~B^HmZ1vEX{B1u@B~)S>Lq$4*p@QdeHky(JA-z%Cm;*SbFAXj zBhW&RMOz02uc82TNoa+0(H04`HM3~R1gjq+7$b&6PH=oIW)m^oLJR{*n7+A~Cd0L} zn8^&Q=Mt1cbHMx$>DfjMgT&BCLVFa$8vaL`7ONJK6RQPrydpAVGczNbSqLY2n4gH3 zk$UUNs?N0CAo9V+;6MtkZ_c1Ta1EQ*TmD|F@Yr@$PU18T<$15>jMb~#Zt>} z9Y>#tAzPX~35qq3rRS^>=GIvpoBa;W@iPKrDAOFb5%9~Jd>t)*Wd?dcQ{s49yvjBC z27(ONu+#4>(VTH~@ITWFV*_wv57O}t7GMyIuos)CkDIX%y%@sV*iWki7^XfxgF~1k zn@ePS9Y;(Jwp#oW8aQzUJqVLV>9|PW&m%qN;~d^JE80U%9HE&+Co9p1D5(>Rp$NMn z({Gqk(@()D1f<|Cf_7qn#1n;YIo?AvQTW+#+{Xe1^^Dzv!v4i!+dpK&D6T%EV1cPRC8;Vg?KGqlxCV93{}mB}FlhVB947 gcV@apeyBf?`dVDf)PB#pWQ(!km=Rhf4cQx82|tP diff --git a/bin/net/grosinger/nomads/InitializeGame.class b/bin/net/grosinger/nomads/InitializeGame.class index d597a084e3bb547aaf8424e2d8de0b89ce5185f3..86a1557d19f05162288bed88ce392056f4e4c710 100644 GIT binary patch delta 294 zcmaE^@m-7S)W2Q(7#J9g7)>^EP34mo$;`_v$xO`2tV;FG&r7Wg$jnJCW@l7qWRROE zAnF7c<6=}};N)b`WYpqelw*|VViaf8;bGKeSj@=4Uz}RvpOlrFToRO+my(~$$iSYL zS`IRZkwL)+XbKnH6zj=z`8*lfH$Ue~XRYUCRApde0ICK$C!c`{2pJgUn5~yHi0)=o zi`>qr;j@WRQ+peub_)Zelz`mA|F1U!RWLJf0ZB0iRv@_=NUmYvWmwA~0%XfFtY_c` z%Yn?2X4uTI1<2!NU}w~0)Cbyg8pva3VEV(r$|%Ud#3*h6d delta 69 zcmeya^;|>X)W2Q(7#J9g7&X}$m>3z9Ckyh6PTat^(Kv^1vJt;KBirUG{&ZGJCPr1D XDkerXMs*;~#lXnO%*eo~;UEbBeDV!# diff --git a/bin/net/grosinger/nomads/MoneyPile.class b/bin/net/grosinger/nomads/MoneyPile.class new file mode 100644 index 0000000000000000000000000000000000000000..f7687d8b37c2a19f07d168d5ead3dc73574cfd34 GIT binary patch literal 935 zcmZva-EPxB5QWd?$4*=~329oOEu}3`5+h;>32vwW2?VN?7NnwF<0Pxp#jz#FDdHt~ z5-#`^hzlNoE1n2(c4M5V#F9PUnfYeUjQ#7+kDmbUz%`K**a~Ih4&!L-heH{=VKnjv zWA`u$<=Yp2AWakmYNy_r=LTLlbf5Q5Wj`@t2wYuAKJ!L$nj}yNc@U^~X8dsyv(bHl z;+Ypr7!(HrrTu>3hko)vAm40t2|kVnvV^KYIa5-Gzy%v7N&?l6AIhW2s3+r>UN6u+ zqP`b&z1Uah)M@PNsuuECv(bQUvBo7Em$5Fe6no(y8g-{K*!Mtn*tAiGMFq);KNi^T zEF3Zu#X-!WOpf%Njb>}nq$MV#UCi;n+|}m)scLdFly6iu3wvmqxG7MXE$`4vPHeQ` z2pCiKdSOqDNAYidQc%Bj98KcBe9BKpG}GBuMX~ZNaq%lQW_X3|8AJgUB2`^N zp~`m!TeSSGu$>lb)2dkE6KWr5rxFb9TbW}E8M}k^lyy_K=zPJ(`*ZN-99+!cU0h4y zyE>m@X3D2scQv@CmmpG5X}-?o33~Zsr6ulhMM}F}8+^x&25!B6_v*Ziy*U|nCgZkl G-u?@hESoz3 literal 0 HcmV?d00001 diff --git a/bin/net/grosinger/nomads/Nomads.class b/bin/net/grosinger/nomads/Nomads.class index d37e9b223c39fa92119f5e6644ce96cdd83604b3..886b26dea4a08571cddbfe0b2d91a279a1d1d00e 100644 GIT binary patch delta 2013 zcmY*Z`&U#|6#mZKnYnj{8{mX1VDT70h=+y`0tI~V3b6rHh(yg8hbs&YGvmwvn&@PS z`N#~9X;G`RQnE66*Z@*yFD=uwpZdvvpjxedb*)yk&mEPTS?iv2&-wP=-~RUA_s_J8 z>DC+nT)qNeF@71f4zjRXwZ5jJxvsIHxvsv3!CK$gP}91$&Qa4O5h{&ADR+6?UUz5( zgOr=s!eFfOwQDlwF+AGk>~$9QgxsFOia@}*%i#`&tjI!+ipP<`U@q4UEnvt~AwvBtyLJ)#LPb6gKS&hO}-KC0NS$8|5{QgwVrpnR2T8uuH~H2HUKhbs;U_4EX{oUchdW+^g*jF(l;XIcCLa+}fqNLS-`c zFr@K?mgKM?Vnsi~Dqa+MDIHp<-q))IW6+0}RJ@G+405M4*r2ad7e^%w^R(_ZSI%tOW(s88K?hO{^rhr=4@B- zK0aVD1wESPCoOW<sZNJ29KP6^gs#9A7MM=Bde-+r($c#LiI zJ_+xtG2})NC^ZhlmSmhlFT+*zH!O%?uXx?ZFf{WU;VQ|`GzMC2uT0=jM!FUW$a4g5N@WRnXAAy08O51jt=4x$C1( z!%mvXHXNZH$39)yBKl&+;t)QiC&-nC3;2vE6qB$QNluBpEyoC*Nn~ZBaHI4T3TMOo zH|DSzQ4MCKuI{5=ok3|B5;Ib@R?9ehkEFIxL}yfdvNO^S$jiSjR9RvhqojwC@<78& zq+xypk%#h$R*tG*BU2E4BMu-A2a!vp#VADEI!~`X1hFtd3~`ARmxlj-+)OgxbPC zH1n$-CdxZm@3ujz)^SpbQ-`0Rkb@-fNj? UW@!E;8P}ppi;Qm5g#mZ|1@7{hTL1t6 delta 1878 zcmY*ZYgANK6#mZKJ9F<0m)EFk4T^99Q5Yof5g;fjl7Jye5I!<D|0AlvAw5;q`t6%+Yt=7u5`q^47X`efotC_XV+4r1%_WAa=zkRM{ z-p@$6`{4Rb0P}HAfrViPZ?sS28!fiMf^NodFxR3ihACS-J)WX%VXv=fSup77tM`V& z4(Q0yFbf$Bw#8n*H(Y54!)y%-RAJ@uL`yNt;gy!UjCoj~U_L{N8OZ1Hw-+__g~CRc zhJ|>XU$p3~l;5`G+7_WgK{@}+;*u6)3D=}q>Z5FStSKP8u1jYbX6 zpou5Si`cWgMlN-%(U5?(4B2@+)t;_48=kHT73=v`Io-BF!}Hk4@5w*24t~a(p0Y(l zB9a`K2cL#6`1xIHx~ijF!&U_Oed}yJj2;Es7@UtNtP2}KPdE_N(2MPSp-q=xVg$a? zKD|WT=0G2IYS<;ftL;X3RiMWRB_NE5hL`aQgVNy%H5l8&3{qbHdIfv=Wm|gAeuf0o zRSyROow@^ia6pu2iLm-L9KvD#yUm?(ltJtA`h4Dy(Hii#g~ax8v3-J}FpqDwOyO0^ z40R7))4=gMHMSFxnhc+o*=iSj+R(RyM$oss%HLsCvyE zhTiM-`;DO9>j_a>efU(vX9VmQwN>rIn1<^Z=S%G+_RsN!f}2!1qB7g6;Y)nQFWHN2 zxA3ikZ%9Qhepa^9#%((NzFArWM_*tgaN>(X_Z-YVBX7WgYv{pe~je-W5xT6M(=gNGD*oZ{n zltA51sHI_erHUwe_kj(;D{rFjQFJaHLT(I!aybfTnmmROqx$wW6vnVaeC}pAJ@E(m zRZ*OA>{;jBH-cBQGL0AxI*-I~EQXU5e7f}wY zVb1A^eu3o!lg3aupAU^fXlPFxGo2{e*wnxLVXM9_j%tie=DDjn;IzYQp%ccPr; zYT~CBt;EA-Y(YCh=%8pmiq=KF?8knzL~s~A)M>pYu?y*WOF}2FEVx_nexd)#7rQr>wL5J zFoDUiB)jNd>g~yUvuPGT3mX6(i}zK$Irf@Cg!=7>VPx{adGZn0mBmG{DvH^2A4)(p z!Kl!|jWK-9;5Nrguoe!Giz$m=#Wj<#r<-CsK*c&pMD>%vS0ADVJU|2=F|XFikuJg= nd`I(Ca{As>aT?io@dND&vQuH1p#GN>+=??TQu>iLEcoePKc#rU diff --git a/bin/net/grosinger/nomads/Objective.class b/bin/net/grosinger/nomads/Objective.class new file mode 100644 index 0000000000000000000000000000000000000000..01b9dd2a053d26558b6e382d3cb9adbd974517a8 GIT binary patch literal 556 zcmZutO;5r=5PefVR*?@yKu><$z!;mDc+z+=(My8|4EF^#bqQ>fw&35=lZgj^fIrGO z+tx~i!@il>eQ(~(etmy@0=UGXfI~PkDt7%ah_vxl=$c?ICz1O&nyPWEmr9^W*qzFy zbZ64|*@HltaJ*6ZAm=Jo6UsN*==hdU==O$$;$1LN6%?>jg}@e};c27#i}^@}PjWO< zgr*ma^XZgb^wB#x!CcU0auaZqI}Czl1( zIIpGz)Y0IIKOK9FR(#IUiXD2jxS|v*N+(w~v7afg5(=&Qz^l@WAQXxUO0mbZE;XelkjAh7*fm(n1QhjT{yQQjKPB0Rl@l z(#R-p*+v!_B3;jyC$~2P8D6-9i4-VxgP}X=xuK`x1T>>-Zz@pl{y*sf`}*?!GB$mh zk&GCzH|JD=!loKC8}Xcs2wLaCZ8((2o@#Gt*?UScb~$K@douWOZtZbu+B7pcC?OW3 zKJ)6`QtK7@R&9ntt3E^VSr?RemtgX?c;{JUqku)M5ZQ^#P{t}F5}-nQp}jSF2K_45 zlQs^m%B5Q`C_K?INQ|VQs0r=(K|;tsJGZ#_x41mFxQ2Stxy@FFYNf^f=(03gDyoHCRvyO literal 0 HcmV?d00001 diff --git a/bin/net/grosinger/nomads/World.class b/bin/net/grosinger/nomads/World.class index 5a0d70ce40b85c65556bf1c946c7d009d3654546..82177ecc91759ae3a9ee7e67275cc63dc24426ef 100644 GIT binary patch delta 2350 zcmZWr4QyN075A;8+vF~%r=gE80^HehR4!bbVqD5crC&u+vv zCAsI`bIv{Y{CwxUytek0Xz~W<`sCU}^m8%vty9j|r zlh&w-y@iWUNIZ$3JLCQ)I^yj2SC$?|(2t{dTHu$28uz)r^oSL|LE=|(j|}CV&_5vcOA(5?3&mO(Y||)~Lj9 z@ru)DuD|$q1nG(r>B!~mx`E#lyd%~qzwj#FkdUZXyFW_&3HK6wBRk@WjKG_OrB1G7 zX|0Jl{6(p~MbI02dU~3+D%Lv^f5qP%J- zBCulJJU)>45G@?t^@(KiDtjpF$1!{?@d-}yi`$ac&<+#x__xHTu39`}jmHuxF3M-c z8alW8e5Q)_bCr&>cgmK^d5(-|(QN;XR#K4WbjzA$7*#IXwv1&`CVB7%FJwsa zlj-b|O?7;dl1i|X9m}S#&Sny+VXiinNeWW=)KR&Ia>r=7q!r3d@3!Qa%>|(bNh@g; zL9^m;zq4&^6L039= zlvQgn>UAC|>+9&}oQ`J_S-alOWYU>vy-AztYC%^KD$XISr+>ruhV0R7BAt@7#aSKP zM`csb1b6AV5^keX?#wIU;UA!M7E^=M_*tyEC6D|8=6JAD@uBhh77VY*E@|rM}1*m9&bnWuznE7^LRI`Yg$2^$0^19h?!cam_&V84+$+K%5&O@ zJpRRsyw^^I1Rr*bxO;eDVJ@tfYscBdah4U-3VUAp=vul>>og|u{pLrpJY;l)L`T#g z_CJm7VgC`F-iOYxe+EfH)NBizGdSaciY^e=!vWX9T*wHT-wg>~f@aXnV_^~zb=TU5 zW#?RGXa7g*)Fk+sBbXZ4Z4e9N`xkz&TM*mf-OlE)Zx+A2g4xChIkx|;xul?XSfBQ z<93|IJ>2pSa5Fzd8m7sMqr88Cbj%Tt9rEKtGVv(|cmhZ=sg#yb8P#wSZOY- zR`Oe*<(#V(2+{>yj0R5lN;J|ctl?a(r6&GvH@ihGOp$IURujmnB9fay$rR{jP}K3x zqb5I7HK|_WLi(7-D(Gu{Y6vKVw;rNP8R8YRK2ICk_)h^HuSdNtZDH>r`o_Q{>iQ0% zqR5Vsd@gwOA$2i=U@%Bqn$dikuG%IzC_6pJBLNY zTofs%V{{E;%)`iQrLDZv(0~99&^MXWj%pgDYni8@!2b)43ff%FNca{XJs$e@e*jlG B1-bwL delta 2140 zcmZuzdvH|M8UKBIclX@AdlELph1|Rh!H_pAsYY1Tf+!dX32G!0XYBNny{0RhY&C+Q*oz0%_ zJKy7+-}gG358@v#j2yVIdk=sXx=p}GD0P?mqT6fQeNy(>neMccN~~~_J2(113zmiZ z>;c=cGWIHK(7RK;uSni z(5+Oe%eMOOHZY8|I_EWs*YSp%HmYK85(@9K)>|=aLngK?ok}}l?85xZ#(h>NO zQ0{(RP+no+2tHC~9}|LgZEbD!Yn12@5`V;}?)q@EK7l_;{29mGXTuf2N&H3N3-{e{ ziFO<(+>_zCOD6H9#9z_K(cPI$rEal%Ga*diw8U39#y74_S-tBFOyX}6fA`E1jz(v~t-?K{^6|YpC>v)@;vW+K{P)3~>#dZ)Id{7(n}Z)YB`QjljpnW) zXTZQ&9Oi}dK}0_Hw5+e>onKM_zhr2c^sN~uInc*tBOytr(9SCghABHirIN}NQ2*N0 zkj*8b3Q3i8DM7Om2|~24-Ai!F8t994uDy%HTU>uTM@VxdRV&9}+F_loM3+gbQ6kN; z6KY>8sm@D6pJUqtO41;yQAzZK<*ZxbbXyyhv{}-8@2HJ-DwW=#M3+liphW)Ojh5&6 z6G>Mnf#|om7c-Vlt$fj-3TcQIN?Js5R&tVt?9Mwmfz>6`5ii#1Y68ty$+=b~=cn%e z87;x3v`o--E=5YU>*)r!GSbnqf|I(zNoMRS+i}uPyvm?9S}EuzLh;2WYwNt>o?d$} zlS~gtYIh%vY@x!P3yXde%y#iW6arc=0^ClZp>b^P8O6?34NaqXVH~@7v%5oU_3yxV z4)@1{BUoex$M7IwFNWg*GmyjHxS+Tm^+)t4QP>pq=kV%YOvLqOQ<(Y~-qO&$$xq5_ zD`D%@>*F}sGxNPs9Lgd4yY6uu=_%4q@SlGaN2gExBpx(_JMdW!pPNBVn^xy=QVCD7 zP-_(bp%~MmKdZxo#t3HCEh8IvB)mx&XB_1+EZ^AOO zp;z(E7POk7F{B7_quDgZ@STr?n}~XAi>TlwVnmD_ei*?#lU=PXsJw`Y z(fp6q$xS-3EU|6s{!N0|ow;8%n1OMe?U{Lg6c@^JSxn_f8>QfOe$o7x$Lm&aJq8`0 zqkso6iZ4)t6Nup?TJa?o@z^fGDXhe4tl??xVO=lJ=peqqz4#XQ;S3(Y_js76@F||J zXK)UqIFC1&e-9VNGc=QmS$!YAqDv^sP9uE9V@w4ONQHM^n4<<}F%%CJDQ+6nYzFll>+V5#ig9FxP)`ds3+&@L#6#fh)FSjBQh{NX z3k(Tt}(`_3|4pZfXX^?8Po^-+nMKaSPM zA7E+Y4l;98-p#ZsPv_?8ygaSX)22L))T7H(VLZgu2{3IhrYk$t5UWOR+C^7! zD;Lw^99`4QU)9ez6!$kaoBmz2qR0*o3hc3({?$OZTD_#&N8C5Jnm91 zFK7<@RE-*%%bLrufNHRkYQ6ruR_W1xvH#HSHI4$^POG@DeB5nK)WMvF8ic8nR c = listItem.getCurrent().getClass(); Drone newDrone = null; try { @@ -252,11 +253,16 @@ public class DroneTeam { } catch (IllegalAccessException e) { e.printStackTrace(); } - + newDrone.setName(getName()); newDrone.setUID(InitializeGame.generateUID()); - + DroneListItem newListItem = new DroneListItem(null, last, newDrone, this); addToEnd(newListItem); + + newListItem.setX(location.getX()); + newListItem.setY(location.getY()); + + Nomads.awesomeWorld.setObjectAt(location.getX(), location.getY(), newDrone); } } diff --git a/src/net/grosinger/nomads/DroneTools.java b/src/net/grosinger/nomads/DroneTools.java index bb5b0ce..6d3ecb2 100644 --- a/src/net/grosinger/nomads/DroneTools.java +++ b/src/net/grosinger/nomads/DroneTools.java @@ -59,10 +59,7 @@ public class DroneTools { * @return Boolean - can move */ public boolean canMoveNorth() { - if (getY() < worldSize - 1) - return worldReference.getWorldGrid()[getX()][getY() + 1] == null; - else - return false; + return canMoveHelper(getX(), getY() + 1); } /** @@ -71,10 +68,7 @@ public class DroneTools { * @return Boolean - can move */ public boolean canMoveSouth() { - if (getY() > 0) - return worldReference.getWorldGrid()[getX()][getY() - 1] == null; - else - return false; + return canMoveHelper(getX(), getY() - 1); } /** @@ -83,10 +77,7 @@ public class DroneTools { * @return Boolean - can move */ public boolean canMoveEast() { - if (getX() < worldSize - 1) - return worldReference.getWorldGrid()[getX() + 1][getY()] == null; - else - return false; + return canMoveHelper(getX() + 1, getY()); } /** @@ -95,9 +86,29 @@ public class DroneTools { * @return Boolean - can move */ public boolean canMoveWest() { - if (getX() > 0) - return worldReference.getWorldGrid()[getX() - 1][getY()] == null; - else + return canMoveHelper(getX() - 1, getY()); + } + + /** + * Does actual checking to see if a space is able to be occupied + * + * @param x + * - X index + * @param y + * - Y index + * @return boolean + */ + private boolean canMoveHelper(int x, int y) { + // Account for being able to move onto MoneyPiles and Objectives + + if (getY() < worldSize - 1) { + GameObject objectHere = worldReference.getWorld()[getX()][getY() + 1]; + if (objectHere == null || objectHere instanceof MoneyPile || objectHere instanceof Objective) + return true; + else + return false; + + } else return false; } @@ -147,7 +158,11 @@ public class DroneTools { */ public House createHouse() { if (hasEnoughCash(Nomads.HOUSEPRICE)) { - House newHouse = new House(Structure.HOUSE, getX() + 1, getY(), referredDrone.getName()); + // Find the closest spot to you that is open + Point intendedPoint = new Point(getX(), getY()); + findEmptyPoint(intendedPoint); + + House newHouse = new House(Structure.HOUSE, intendedPoint.getX(), intendedPoint.getY(), referredDrone.getName()); worldReference.placeNewBuilding(newHouse); currentTeam.deductFromBalance(Nomads.HOUSEPRICE); return newHouse; @@ -164,7 +179,8 @@ public class DroneTools { */ public void createNewDrone() { if (hasEnoughCash(Nomads.DRONEPRICE)) { - currentTeam.createNewDrone(listItem); + Point location = new Point(getX(), getY()); + currentTeam.createNewDrone(listItem, location); currentTeam.deductFromBalance(Nomads.DRONEPRICE); // TODO - Implement time to create new drone // Creating a drone should take many turns. Their drone will remain @@ -172,6 +188,51 @@ public class DroneTools { } } + /** + * Find "closest" point that is available to the point provided + * + * @param currentPoint + * - Location of drone + * @return Point + */ + private Point findEmptyPoint(Point currentPoint) { + // Current point is where the drone is + boolean validSpace = worldReference.getObjectAt(currentPoint.getX(), currentPoint.getY()) == null; + Point tryThis = new Point(currentPoint.getX(), currentPoint.getY()); + int outX = 1; + int outY = 0; + int multiplier = 1; + + while (!validSpace) { + tryThis.setX(currentPoint.getX() + (outX * multiplier)); + tryThis.setY(currentPoint.getY() + (outY * multiplier)); + if (worldReference.getObjectAt(tryThis.getX(), tryThis.getY()) == null) + validSpace = true; + else { + if (outX == 1 && outY == 0) { + outY = 1; + } else if (outX == 1 && outY == 1) + outX = 0; + else if (outX == 0 && outY == 1) + outX = -1; + else if (outX == -1 && outY == 1) + outY = 0; + else if (outX == -1 && outY == 0) + outY = -1; + else if (outX == -1 && outY == -1) + outX = 0; + else if (outX == 0 && outY == -1) + outX = 1; + else if (outX == 1 && outY == -1) { + outY = 0; + outX = 1; + multiplier++; + } + } + } + return tryThis; + } + /** * Tests to see if the team has enough money for an action * @@ -188,4 +249,13 @@ public class DroneTools { } else return true; } + + /** + * Find out how much money your team has + * + * @return int - Team Balance + */ + public int getTeamBalance() { + return currentTeam.getBalance(); + } } diff --git a/src/net/grosinger/nomads/InitializeGame.java b/src/net/grosinger/nomads/InitializeGame.java index 1ec397c..2ae8980 100644 --- a/src/net/grosinger/nomads/InitializeGame.java +++ b/src/net/grosinger/nomads/InitializeGame.java @@ -163,4 +163,14 @@ public class InitializeGame { if (Nomads.DEBUGSTATUS) System.out.println("Building placement complete"); } + + /** + * Generate the money piles and place them on the map + */ + public static void initializeMoneyPiles() { + for(int i = 0; i < Nomads.MONEYPILES; i++){ + MoneyPile newPile = new MoneyPile(); + Nomads.awesomeWorld.setObjectRandom(newPile); + } + } } diff --git a/src/net/grosinger/nomads/MoneyPile.java b/src/net/grosinger/nomads/MoneyPile.java new file mode 100644 index 0000000..5867384 --- /dev/null +++ b/src/net/grosinger/nomads/MoneyPile.java @@ -0,0 +1,41 @@ +package net.grosinger.nomads; + +/** + * A random pile of money with a random assigned value + */ +public class MoneyPile implements GameObject { + private static String name = "MoneyPile"; + private int value; + + /** + * Class Constructor + */ + public MoneyPile() { + value = randomValue(); + } + + @Override + public String getName() { + return name; + } + + /** + * How much is this money pile worth? + * + * @return int - The value of this pile. + */ + public int getValue() { + return value; + } + + @Override + public void setName(String newName) { + // The name of a money pile will never need to be changed + } + + private int randomValue() { + // Min + (int)(Math.random() * ((Max - Min) + 1)) + return 100 + (int) (Math.random() * ((400 - 100) + 1)); + } + +} diff --git a/src/net/grosinger/nomads/Nomads.java b/src/net/grosinger/nomads/Nomads.java index e0803b6..32ff7d9 100644 --- a/src/net/grosinger/nomads/Nomads.java +++ b/src/net/grosinger/nomads/Nomads.java @@ -34,6 +34,16 @@ public class Nomads { */ public static final int DRONEPRICE = 150; + /** + * How many turns does it take to create a drone or house? + */ + public static final int CREATIONTIME = 200; + + /** + * How many randomly generated money piles should there be? + */ + public static final int MONEYPILES = 30; + public static void main(String[] args) { if (DEBUGSTATUS) System.out.println("Game initialization beginning..."); diff --git a/src/net/grosinger/nomads/Objective.java b/src/net/grosinger/nomads/Objective.java new file mode 100644 index 0000000..f53592b --- /dev/null +++ b/src/net/grosinger/nomads/Objective.java @@ -0,0 +1,15 @@ +package net.grosinger.nomads; + +public class Objective implements GameObject { + // TODO - Implement Objective + @Override + public String getName() { + return null; + } + + @Override + public void setName(String newName) { + + } + +} diff --git a/src/net/grosinger/nomads/Point.java b/src/net/grosinger/nomads/Point.java new file mode 100644 index 0000000..7151ff2 --- /dev/null +++ b/src/net/grosinger/nomads/Point.java @@ -0,0 +1,30 @@ +package net.grosinger.nomads; + +/** + * Just used to transport locations between two methods + */ +public class Point { + private int x; + private int y; + + public Point(int newX, int newY) { + x = newX; + y = newY; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public void setX(int newX) { + x = newX; + } + + public void setY(int newY) { + y = newY; + } +} diff --git a/src/net/grosinger/nomads/World.java b/src/net/grosinger/nomads/World.java index 96043dc..bc940ef 100644 --- a/src/net/grosinger/nomads/World.java +++ b/src/net/grosinger/nomads/World.java @@ -25,7 +25,7 @@ public class World { /** * The 2D array of the entire world */ - private GameObject theWorld[][]; + private GameObject[][] theWorld; /** * All drones will start at Y=20. Will then move East from X=40 @@ -74,7 +74,7 @@ public class World { * * @return theWorld */ - public GameObject[][] getWorldGrid() { + public GameObject[][] getWorld() { return theWorld; } @@ -218,6 +218,14 @@ public class World { // TODO - Implement buildingsInRange return null; } + + /** + * Generates a new MoneyPile at random location + */ + public void generateMoneyPile(){ + MoneyPile newPile = new MoneyPile(); + setObjectRandom(newPile); + } /** * Outputs an HTML file showing the world @@ -251,6 +259,9 @@ public class World { g2d.drawLine(i, 0, i, 1000); g2d.drawLine(0, i, 1000, i); } + g2d.drawLine(999, 0, 999, 1000); + g2d.drawLine(0, 999, 1000, 999); + for (int i = 0; i < WORLDSIZE; i++) { for (int j = 0; j < WORLDSIZE; j++) { GameObject objectHere = theWorld[j][i]; @@ -266,6 +277,8 @@ public class World { // World owned buildings should be black g2d.setColor(Color.black); g2d.fillRect(j * 10, i * 10, 10, 10); + } else if (objectHere instanceof MoneyPile) { + // TODO - Implement mapping of MoneyPiles } } }