From 7b0b2b666d9ce76c2c2631082e0cf8dba0edc7fe Mon Sep 17 00:00:00 2001 From: Tony Grosinger Date: Fri, 16 Sep 2011 11:31:55 -0700 Subject: [PATCH] -Created InvalidUpgradeException -Implemented Maximum Number of Requested Objectives Signed-off-by: Tony Grosinger --- bin/net/grosinger/nomads/DroneListItem.class | Bin 9937 -> 10460 bytes bin/net/grosinger/nomads/Nomads.class | Bin 5124 -> 5165 bytes bin/net/grosinger/nomads/UpgradeShop.class | Bin 1218 -> 1406 bytes .../exceptions/InvalidUpgradeException.class | Bin 0 -> 424 bytes src/net/grosinger/nomads/DroneListItem.java | 30 ++++++++++++++++++ src/net/grosinger/nomads/Nomads.java | 6 ++-- src/net/grosinger/nomads/UpgradeShop.java | 11 +++++-- .../exceptions/InvalidUpgradeException.java | 8 +++++ 8 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 bin/net/grosinger/nomads/exceptions/InvalidUpgradeException.class create mode 100644 src/net/grosinger/nomads/exceptions/InvalidUpgradeException.java diff --git a/bin/net/grosinger/nomads/DroneListItem.class b/bin/net/grosinger/nomads/DroneListItem.class index 6eb13afb2f7da0dd487e4bdda93d065cf2fc251d..4480a58b249b5e83b332dfe764f46423a19c3cf7 100644 GIT binary patch delta 4333 zcmaJ^33yc175>ki<;_fPlF6RQ!eT;5CP55H0$~eFkR@ReAq5mNkO8ugKo$^0N5r~R zAi!fW1g$JKYM~O)0hCe~#HzSZr7jgqU22OACOC#OSBZ^6tIo+ zh=LE@f5+Doik^G3ny?=!!v|j1H+9mF#{!@ z#R`H}-%wdq=c{#L4xW>E9xVj9z*kqso=mQ9Xj<&VDZHfNMM9pjw%8SGlXw}g=sjFR z?0=GY6|d>nxyAqkX4HTf3QDCtKMAM5=hraC{9h{NZE zEd4%vvVL!b+j#*OHGE;FQUXgNIg~H)AN`$(O#9ao-{4!_A*W>iS7J3*xX?+YvEPU? zXsz|tE$Uz9Yg#NxkVU^irrJo8TGgLicy={8k_tI&IuGJDPBQrZLC`5cTplG zYm}sqj7+e2C`B)i9630VE|Zi&7Dl78zIlGFf2Oat*{}BPBPome^4bOds#?Y3*qpJ- zW{xB;O_2DSstbR(X9xZRK?3H&2-$aho}1lB7~9)7M20 zrYW3v$@FeC9t<{8{MtJ?ATtgKUwUU;o6w#_0OO`BcTB$s( zmv~eqgnfAx9|%jho~c08; zPtZ-00>+%l^{O1yoHdeeQ6gKYHcrs3l74AOLiv7zZkKe2DN&iAR{cuST}qkb%-#r(7z!i#!-Qi5dzQ|?QMi`}^IN9s$4dNXvT)-{h?kY3H(*nCg zvOU<#wiFtp85hB=OQDe)#Qo(RJQ7flxRi!w!b#;u6p7}{P!vl4TkJEu+W)ime%IYz zo?)I22kT z@1}@$a%d&qAc8-RY!w`ILpLMNE+dbl#WX_G*oeYsFB{1}ierS*BY48fNIk6&ODhcg zu@%yL5HB3YY3n}AKAu$(#2Hig#t(#lF@^8^K=?OP_F|+(-Mdn>zH7=}G0s@d?NNDQ_MJ`5lTiuDRIIug%6_ z@YN9lCk8enq34<4{ENZKeHPXZM(5v0@Ksq}5Z{fk9Koe{vg-TOGXopjk(gj}kK2oA zvvGLy4wGFGV@6tpD30_PM|vDl^aP^mX(Z7zNTcVFO{Xx3Uc@kZ6=Uc%OrkTmnqJ2& zdJ}W$tU=@m)1MHLE(XR)e83?I<0%3GJG-C8izO$M1=%R1NbXrN2wsZfp3R6m4VLc^ zt>Ho^hQh9axXVxe0b<$0$6)}(ExaOv9qwZQK+*pXfSL^z`pZ31XHsl|J?aQ06ln}W z#vVj?t&f6%sZogRfi!jPm}4T8z|GV>h>E9FV^KRsE6H9c#q3>5kGS=hzwb{r}Iz;Bm5D*4d4>xhlsohJsFqxn8**9$Pbyw z^GxK&Oyp-w z0)7ih1fr9ZlX*%EN07H;ps}JGuOLx;f1h1!-cD)nh%0YDI7mTX$fd$ND5qZiPol zJXVA2(juG3#$0oPDecr&6nU&qP=L3-x=3A?`A2Cwp~&vBdF(;D=7+1Ji!_yFyxP_g zcEH#^JxH_CS`q0DJ9AxnXvA>@XC1;hdO`^I`_R6f^OaC?^EOY$7q2gjhhaVj(4p zMbt|y<{Yb{%SE+u>RbyaCwu?Uslz?K-(KOG;F_iRoH7E5%JvtS!qsgnGB=sX@u zBOA`}yVpWm#D~c_{<>PsJv+V%X)PK))$hni3!G9f)m3J)h)xWEW~7oS)@TO*g_K`& zR;EYtr=J65?1j4K&#`SQx6|4&SXF9@s3M=nIC0kL6JDSigZ5=XR(sH#1)9!APsSf6YN! zHtQs;2g;97~4AbGTkM_q#(d0-7|Zsvh4JXjmxkv%-RjR$T= zcyy;4b?MgeD5RQoh?X7Tqr;69q*Dueu;X5Cb8#hKJuMiFQ5ef@2_|#oEw~!jVji~@ zjK>mg>#zc=xK($f-kcR1Q0Gk{V#aH!J!a7 z6A#knFg{yMeDDsRJmF~Y0uRE7VB{M-3PXbTc@RR51KoUpsdO`OX}oJXZwBF=c$73rdDp%#e0eg-%;%0uX3WcV$c5o+S{(- delta 4100 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 diff --git a/bin/net/grosinger/nomads/Nomads.class b/bin/net/grosinger/nomads/Nomads.class index ac5b0c241f3a29170a1164e1ff01ac8ffdfecffa..ccdb9e290351093841c15ffb4d516ed48f611f27 100644 GIT binary patch delta 2312 zcmZ{k2~<>77{~vY_h#PAn<9>05`?3<#8{wUEUsla;S(o^8Jc;xmb6%D zg)O%w38~wWMPxaQ;dCR6usPLXuS3b>K%MY@{>~wx0 zp}$^)5)EhIGzR-)?l4GJ7$G@7SMBU~j6vN_)$VHm`3ww=W1NjWEbakheq z3`rOJ7WxVUzF!YO zJr~tHMb4IM8PW+mHFJ6>9GI)31|{PDX&P*>tC)dV3T8445jOm4IVtNr!JH(J{l0*I zsZkaV1&xS`*|<=_1q?bbuKD|7ef5Tli-cKyFRJn>-o^Dslj#oy z#dU^;d1&CNwo>NjQ*0&91sYrkFbwA7T!V7!2;SpBkRi3kh=c+Q{lNy^r!VpcgGRWZ zpg<+|CJmP$%-^=XR(&bio$YHh^gt-oq(@9&*rX50PWZT7Lmwon@Zxd}SKvy9S;wB9@3r!pihFKX}Xhd9C39jK*+{U2H_eH9V#in&1Nxqi1 zDFcVBV{lofx)};B&{eF#9U^P0#po^#cVh$pNy!~_4};cd@f!7^;9QEv8r&zgH!^9@QHhV2@jM1Y^_tYj*r}$jKXCg^RaURkfHVt3kOFqIi!ud50D)>gEIqel__*TH! z31(_}nTqf6qk1MZG(oNaHzB0WoK+qXP2h1lgS42 zLw&}!B-7sTUVHg8FX%NF`-Q#cnKU2KYd#nb`kzXrgkdC|UP9-KU*GL0nz;qVohX$% z;c2I(1dO3J5fZgdsPs=niydcLTcGc$s`Q*vNIj!q4lVj&dUv{i#lfUZ+AJVGOV9>uC|>xsb(Gh`^+N0L_}QkU+Am(IOg^&|_VU zB{W(}7A{CL6wIblc#%vhP=$z7vjFV$2iA()m(lG~CoYpbQ7l>k)`839IW+G=%eW4d z#&FdrIobmE0C_8}W!Qn%s{9yk6w_N6)^~qPh7;(Z?N~F@eft)y&&o7nxYNBchI?bU zpH5G=ZA2ouPAA9kkmO0h<}N%Ig*wVMz!t+39q_F0UL{z%ELFC(5oa@&VL81j5`ai~ zYtjsl(4dG)ZX#CUDQZCq8F(7cka;m_u!B68sKAfGv$Q7RaKbLhruklD!mW5y(nQ-954;PN@{btE6q4wfM$5*jO8zB#n+o zpel;A{A2Q04v*ojj7_i&pG0d`48F>3BQGtI9QR0zM5ozcC%zM<*ke6TK@E8DGk&2y1p_TsMz(1< zj9+P2Bz7_qy2%Ym!Pjx*p@jS!j`SdVH}o(UA7{?~U*;H2qa^XVQu0D1DHCKmP&buMU#{ delta 2195 zcmZ{k33O9M6o&uld&x^)9$f-GZK1RQTIouGVu7|IAX}lWEM*mhSYjJU6HLNVwzwdO z)^$V#*;F*H*hSJp6>wt{L=+cP+)xlu5qCTu>z$Xjz&V=+Q6_xA60Z zBWwxZZA^?_rlA8ORSZKw!>zcDpED+!a&d=-6}Xc}DOcH6VYPz07_67HE%H0OcE87~ z;cnc+Cn`4iUWOz(M^axEHMn2H1A^OB;qaGu7C3wstinSYI38wDD(${f$09$2l$JhC z!6W>DlGx)>28(WL^LspVZ7SAay~x>E(c7S5BQ|l9DWmfi2Cd5JayfmDa*unqPb@zn zmY?LsroN^%cuK?52=bMtlv(5OtcK_CJh`rLxCODJ#6FKfPAf{EWS~+Kzx^s+LY;!z zD{@{|NqHn)>(Rhq@VOigec$NxNh-Dr?L*?cHRdGAgeIP8PB8A&(2Ti!w7HzU!MB++ zN4-UPE30(a7CPM&+qTf|qf^yjpN9Pik_@CxslAGFnTvxO-o_yU^EnqgbX|(X^g9}k z;9cHLwI$}_Jq_>c@;QCOtLFKug|81Ze27DQhPvETgU>Xaz~}s=nrHkHUn}^ECtG?- zC-Dt0vh+5d!gmTzQ#B@Moe|-U6nWNY+i* zQA?cju>{NM-jD!9%0tmpbPf8^I~a-8c!gTPMvvI5*hS`fq`_`Fxr9-a<~=kg(aU5Y zgSnB2|=6yPUZ zAnHy?)QK47E)GBA7a|uajX^{U!Ac5Fg~3t@>{tBO3bwfwEUz6b<$u9KXhVt$GaYYd m+TSsGgt&e}FHoWVjz4s!xOOJ%e=?m5GuepdPudWHi~j0PvqCtqzFi9t=)- z#9g^i6nue#q+-E>OW(ki&)`}to{5`#&iT)O{&V>6_pwvA_~Z2JH(-$m4wfP?zg5YM ztNh{oAC+~eD3%4PHwQY2JI{8bp6-Mj`|WVIAHV93p_uR}alxg=q(fa%Hy^FC`Ji$c zkBeL~k+qP$%(O$pytgK+O=c8s6!zD3qPy)-VK=59x?G{wc<+(k-wX#~GHSlaaZ^zhEZ%v&6C`OP&`B@Uoi~AQZ^r_3 zTzpni!P|;bWAmjR=$4!kwVw8SaW`5qzWpUrAkSIz(|&T0#gYqr9C7I#HfJQZnxCl- z35HCq&J3AdtN5SDA5-2sV&O!PYi}tW<8Ph6am1~YLm9Dg<*klnd=aluWI~(^B&&&0 xb>^579Gd@E;8BojNw%@dnmC;o+8xfxJ?ZFO$!zWkC5QD_K1vmZvo5v8{eL%>S)Tv^ delta 326 zcmXAlxk>|36o$W(Nf>8I49El$XC{kAv$!Pg7FziL3R+kO9fE}m!N$tMN0`z!FA$I@ zDhigqjkOp&(dJ%$?#K6^b4T`vmHiw&zX2<3nL>+F9rca`Nxj3y1OAY3$m~vY zNMkqf`#3KYjvrZmA1Gm9>zPv{OsmN!OQ_ov2`FoZ#=i-dv?g`xN33d-!xU>wYEzaB V>rCcVwxNKD{1AvJv#Bw`)-O~YG86y+ diff --git a/bin/net/grosinger/nomads/exceptions/InvalidUpgradeException.class b/bin/net/grosinger/nomads/exceptions/InvalidUpgradeException.class new file mode 100644 index 0000000000000000000000000000000000000000..9d7188b6f26c79c57a33d1ff64f9862f76308923 GIT binary patch literal 424 zcmbV{&q~8U5XQfWG0|9Ut?0>%H~)YOUPLOrh=LHjRD0hhLtIIB%O)+pmM6i358y*d zCtCF&Ufh9Ue>30ieDn7H@(SPt-53Gk)N-u~?eEHRg5fZi@^h~Q#+d_Re2+_H*rtTBA_tPK2p!PDNcQ7P`7cS=nOIU4T84;nK z8p}7+@reDc9+gb!rY_UvPArrayList + */ + public ArrayList getCurrentObjectives() { + return currentObjectives; + } + /** * Returns if the drone is wanted * @@ -322,6 +332,26 @@ public class DroneListItem { waiting += newWaiting; } + /** + * Adds a new objective to the list of current objectives + * + * @param newObj + * Objective to add to list + */ + public void addObjective(Objective newObj) { + currentObjectives.add(newObj); + } + + /** + * Removes an objective from the list of current objectives + * + * @param oldObj + * Objective to remove from list + */ + public void removeObjective(Objective oldObj) { + currentObjectives.remove(oldObj); + } + /** * Increases the Visible Distance by specified amount * diff --git a/src/net/grosinger/nomads/Nomads.java b/src/net/grosinger/nomads/Nomads.java index 91b2298..868b705 100644 --- a/src/net/grosinger/nomads/Nomads.java +++ b/src/net/grosinger/nomads/Nomads.java @@ -3,7 +3,6 @@ package net.grosinger.nomads; import java.io.IOException; import java.util.ArrayList; - public class Nomads { public static World awesomeWorld; @@ -47,7 +46,8 @@ public class Nomads { public static final int MAXOBJECTIVEBOUNTY = 30; public static final int MINOBJECTIVEBOUNTY = 10; - + public static final int MAXREQUESTEDOBJECTIVES = 2; + public static final int BASE_VISIBLEDISTANCE = 15; public static final int BASE_LUMALOCATORDISTANCE = 10; public static final int BASE_OBJECTLOCATORDISTANCE = 10; @@ -57,7 +57,7 @@ public class Nomads { public static final int BASE_SPEED = 1; public static final int BASE_CARGOSPACE = 3; public static final int BASE_THEFT = 1; - + public static final int MAXLEVEL_RADARS = 30; public static final int MAXLEVEL_STATS = 10; diff --git a/src/net/grosinger/nomads/UpgradeShop.java b/src/net/grosinger/nomads/UpgradeShop.java index e81f568..e72fc71 100644 --- a/src/net/grosinger/nomads/UpgradeShop.java +++ b/src/net/grosinger/nomads/UpgradeShop.java @@ -1,6 +1,7 @@ package net.grosinger.nomads; import net.grosinger.nomads.exceptions.InsufficientFundsException; +import net.grosinger.nomads.exceptions.InvalidUpgradeException; /** * A representation of an UpgradeShop. Allows Drones to interact with this @@ -12,8 +13,6 @@ public class UpgradeShop extends NeighborBuilding { super(x, y, name, building, drone); } - // TODO - Implement Upgrade Shop - /** * Performs an upgrade on the drone if it is possible. Must be passed an * upgrade that is not already of max level, and that has enough funds to @@ -22,13 +21,19 @@ public class UpgradeShop extends NeighborBuilding { * @param toPerform * An Upgrade that should be performed * @throws InsufficientFundsException + * @throws InvalidUpgradeException */ - public void performUpgrade(Upgrade toPerform) throws InsufficientFundsException { + public void performUpgrade(Upgrade toPerform) throws InsufficientFundsException, + InvalidUpgradeException { int teamBalance = drone.getTeam().getBalance(); int upgradeCost = toPerform.getPrice(); if (upgradeCost > teamBalance) { throw new InsufficientFundsException(); + } else if (toPerform.isMaxLevel()) { + throw new InvalidUpgradeException("Maximum level already achieved"); + } else { + // TODO - Implement Perform Upgrade } } diff --git a/src/net/grosinger/nomads/exceptions/InvalidUpgradeException.java b/src/net/grosinger/nomads/exceptions/InvalidUpgradeException.java new file mode 100644 index 0000000..2175373 --- /dev/null +++ b/src/net/grosinger/nomads/exceptions/InvalidUpgradeException.java @@ -0,0 +1,8 @@ +package net.grosinger.nomads.exceptions; + +public class InvalidUpgradeException extends Exception { + + public InvalidUpgradeException(String reason){ + super(reason); + } +}