From 3bd498107969cc7bf964124ae0f5088a42f82308 Mon Sep 17 00:00:00 2001 From: Tony Grosinger Date: Mon, 29 Aug 2011 21:13:31 -0700 Subject: [PATCH] - (Mostly) finished Upgrade class - Finished upgrade process in DroneListItem Still need to check that a max level on the requested upgrade has not been reached. Signed-off-by: Tony Grosinger --- bin/net/grosinger/nomads/DroneListItem.class | Bin 9588 -> 10799 bytes bin/net/grosinger/nomads/Upgrade.class | Bin 1510 -> 2978 bytes src/net/grosinger/nomads/DroneListItem.java | 63 ++++++++++++++- src/net/grosinger/nomads/Upgrade.java | 81 ++++++++++++++++--- 4 files changed, 129 insertions(+), 15 deletions(-) diff --git a/bin/net/grosinger/nomads/DroneListItem.class b/bin/net/grosinger/nomads/DroneListItem.class index 1af12f32c1a3756a8af46e3123561c684b22960f..4a5255c2bc3daf5cd76aaef558fc00540f29950f 100644 GIT binary patch literal 10799 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 literal 9588 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

gmJrc;|_`9PKn_ziQ^vW!@aC!?`QS;pj?TE zz?lrC>>Y?VoYQ!VbYrTsRgJ@@vvYgRLrXDKeqi+O!TYQayDf}N=R-a}>^_R@JbPL1jYYme@$EY){#%!3_2VL?T8B4JFeB(`zfoyf zIq(JrF328~anH$wL7CW=98Yd5$hrp;1A}tjUC4Eizy8I^AsyeU3VJzC9Y0AO4^qcZ zQOBpKNf=@TTZPd?Fw5F6v{+miMJVK9FhhOUq{V z*g8zwj1(qqhF4CG&4?#uGoPkx<`c(eYVlKOq-XOqHu{@t`c|r;iQ^{9NS_@@oqGHx%}7ajyIhv*h=fEp}F)Zj()Jp1+AKlnc3N z9wy5ozBP+&)&ienmXG&F>IA_HYnv_koDSe4TfgGswMWQlv(5*6f!yj zC-d>gofWP1rVPr4;v>inBv)^m;*7}ApllwJ?ae%=LgQ&#%fNWeg9(}s6SXW9YS}2_ zvr@}JrKY1w%R{x6k2>uftk))Dqc#bRS}|I+DcH%@(57LJHXR9V2CmZ1$4%Ny+@_V_ zZfzDG)aKxrR*G+H0X(BEz_Z#SyrM0|YuYmWOuGmlXv^`5w!$*x^|me?T~aI3j1!dk zM7+&xqjXt_H>H)m3>eHLTbO@5%=I&+jTtBt4^rpb+4EXDp8J^hl$!goM1_vIwyuUkhqBcT3Q8kQ1`cO9xow1Ib1hui zapa3rG@na{1U_3`S79BVr%yPtX5zcFxJ_ORB-_idt! zwQ&^UC^ZOk;7NXoa*&xE#5nLK2fZBRXC+4m)F}1sN{*aQ+nF3_NLAmeN+73sJ_Jg aYjUG}nXSs`PcXaRw5Eu^E{fc|rs$9N%}xsd diff --git a/bin/net/grosinger/nomads/Upgrade.class b/bin/net/grosinger/nomads/Upgrade.class index ad70fe064514fcc250eafa09b53a7bbcf5023b27..633199f42d2f21d1b6f026bee712c46d380e66ff 100644 GIT binary patch literal 2978 zcmb7GU2GIp6#j1auiZ{*DGP!kDp{m0LQw>*R9xE9bYUq-ODiD4usduAwlnMOw1S|h zsGulX{Fj8p2Q(T&z#nW3Au%zU$didLBtG!q3kiuYKC9o^nVkh8L^ru}&-w28x%Zy$ z-1g_czPkY60el!kjlyipaNF~aT{5k_;j~-!sGcjeZ!G2=J!ixaR%qI#kL&FP-O9JG z+p){Yx(W^M-l8#R`&J5VnOj9k`gVhKTCOm~F66o#d$(crIJRXdBya9rUd@;#H|-ju z^jnr37)}p%_iY^x>z?pC2TZ@B9nGfR;P({U!eLqi>A)1swy3xPSfJBGUyTK?FH_h ziDN6W8gd|q!db&C2z7`n#7D;pu30RYhNGYeXxTBxF)TM@j2kp-upKim9P#x?(PLu6 zfLz>Kz36i~ZkE>Sdwe6(bhB53Yx-T`zLwToQvSMz6DmF}G>;3vOB!5^v3JMi4%j>k z$^8ElY!05$ut%CSs+VhC$EeS0*e6gt8&pi-=QKPoaBa>nzkn}jcu~MjyQw zEbG(l^2_)yl8VKv8V-p?y;CKo;ICq&&+$tFbNlF=JcoM^txjM;N8~enn!rLIY!~nW0Vk^9g8{fdfros{ zjzg;(#m-Ei(}!00&`<&^eW=@qx)bR2p*|m4T!q$1f_{m1M*{18yA8fwtvZK|r&?!5 z@(FCt&fm=wOybFo*v!}@b{sv$LxmvM`YBrZor_K+`KZl98uy}~&(Y(2kvC!ip2B^| zVj*^7F?R8yO8jfT2TMr%WjKI`a2OBc2s&_-5su+e9LEZrz+?CXT{wwuoJJ4M@;&?- zeVAnQ@A>rofHnAuSuSE7e#LrRVz%G-qFrXjD}2eWVi=pCpeLIZd*TFh_{@P?1W3beLrG zR*whL=|K8EkbVt3t^}Cm@O=9j-DHjk@3|uF38W)|bRv+>2GS3KbSaRo29o3`N9GO2 zSiL;IyIJjK)ORKliDv#1&3_>r3Wa!!1&n$v!-`7_u~|dHlbSM5q^&?3X*+3G!M(Oq zuwWCB25#ppYZ2+RGi4(onde-*#yR3SH`TKLW_!-6gBus;x4uMi(~k(B8J>i5;e32e z+m{$;+t#l84B=rad#N-9+J4cZm9+!ZA{FH&D#6MtRAQBt!{QWZM?|ZutR1Bm_LNOu zp?HQ{Y~oGM#suzUXS8u%fTiU91bN>@Zcp&>SceUq2k<1eao*0`9_4JYSN3tQ<%fs**Mk5{NCURh6=oT~5s{F6*K%(CI&}=z>$%5=iDY^AfM?7075*;A}j~19V2eO& zVqiW3s!yT~?E+mn)7G=ql|}6q)S^WJyK_!aS@X&@8P}O1f64R&_HG)T$_#Oj1j1$Q z-*C+$T`6ETN&)*M4D2F}#K0Y5^kc7qJpzgU?V-dz><};!Zm{zW4#agjATTy4?VOw05iv**haSD4@CRkSWKXIx?;;P^}W zfzO;ti41ePR!z^Oi8mq}m=@Tz-rQLyUo9?WOl_4WUDt7`eNi}sZ71)7zFzF8`+P(?f@EW#u`~GrU2E7q{EF}i z`k5c8-x>e&7i-x6niN{WsYHXYy-4F!kcO-UsHbr_&=cucn4dr`3o#N@3cPrSBe%aJ z^k(5R65qZ?XOi!5j8Y2Ey+mk%K#D-DiB2+VZ^+INYHNV=1e%gj0!Bk}iH(|Qj8UW^ zyGkfj1GnGf$Qvp@hCbShDeS>fdKyz0#2K6?I)ZUb63t)^H;LwP7x#$X$1+xk+IWN~ zM4#dro)fM0hTG45;_>isxEpEoOdH7lq6P_~d`uzNJZAW|e*7UIFV_NJGsqF;Rq3by H`jx)lTint + */ + public int getAttack() { + return attack; + } + /** * Retrieve the defenses factor of this drone * @@ -216,7 +225,7 @@ public class DroneListItem { * * @return boolean */ - public boolean getWanted() { + public boolean isWanted() { return wanted; } @@ -489,15 +498,61 @@ public class DroneListItem { /** * Finds the upgrade that the drone would like to purchase. + * Determines if upgrade is possible and performs action accordingly */ private void doUpgrade() { Upgrade newUpgrade = current.upgrade(); - int price = newUpgrade.getPrice(); - //TODO - Hand price of upgrade being null + Integer price = newUpgrade.getPrice(); + if (price == null) { + // Invalid upgrade selection, turn lost. + return; + } if (team.getBalance() >= price) { - // TODO - Implement purchasing upgrades + switch (newUpgrade.getUpgradeType()) { + case visibleDistance: { + visibleDistance++; + break; + } + case lumaLocatorDistance: { + lumaLocatorDistance++; + break; + } + case objectLocatorDistance: { + objectLocatorDistance++; + break; + } + case reliability: { + reliability++; + break; + } + case attack: { + attack++; + break; + } + case defenses: { + defenses++; + break; + } + case speed: { + speed++; + break; + } + case cargoSpace: { + cargoSpace++; + break; + } + case theft: { + theft++; + break; + } + default: { + // Must specify an Upgrade Type + } + } + team.deductFromBalance(price); + return; } else { // Not enough money, do nothing. return; diff --git a/src/net/grosinger/nomads/Upgrade.java b/src/net/grosinger/nomads/Upgrade.java index 28ea0cc..c663b89 100644 --- a/src/net/grosinger/nomads/Upgrade.java +++ b/src/net/grosinger/nomads/Upgrade.java @@ -6,50 +6,109 @@ public class Upgrade { visibleDistance, lumaLocatorDistance, objectLocatorDistance, reliability, attack, defenses, speed, cargoSpace, theft } + /** + * The upgrade that is to be performed. + */ private UpgradeType typeToUpgrade; + /** + * Drone to be upgraded. Used to find the current levels of this drone. + */ + private DroneListItem oldBrokenDrone; + public Upgrade(UpgradeType type) { typeToUpgrade = type; } /** - * Provides the prices for a given update type - * Algorithm: (((Current Level - Original Level) + 5) * Multiplier)^2 + * Provides the prices for a given update type Algorithm: (((Current Level - + * Original Level) + 5) * Multiplier)^2 * * @return int */ public int getPrice() { + double multiplier; + double currentLevel; + double originalLevel; + switch (typeToUpgrade) { case visibleDistance: { - + multiplier = 2; + currentLevel = oldBrokenDrone.getVisibleDistance(); + originalLevel = Nomads.BASE_VISIBLEDISTANCE; + break; } case lumaLocatorDistance: { - + multiplier = 2.5; + currentLevel = oldBrokenDrone.getLumaLocatorDistance(); + originalLevel = Nomads.BASE_LUMALOCATORDISTANCE; + break; } case objectLocatorDistance: { - + multiplier = 2.5; + currentLevel = oldBrokenDrone.getObjectLocatorDistance(); + originalLevel = Nomads.BASE_OBJECTLOCATORDISTANCE; + break; } case reliability: { - + multiplier = 2.4; + currentLevel = oldBrokenDrone.getReliability(); + originalLevel = Nomads.BASE_RELIABILITY; + break; } case attack: { - + multiplier = 2.7; + currentLevel = oldBrokenDrone.getAttack(); + originalLevel = Nomads.BASE_ATTACK; + break; } case defenses: { - + multiplier = 2.8; + currentLevel = oldBrokenDrone.getDefenses(); + originalLevel = Nomads.BASE_DEFENSES; + break; } case speed: { - + multiplier = 3.5; + currentLevel = oldBrokenDrone.getSpeed(); + originalLevel = Nomads.BASE_SPEED; + break; } case cargoSpace: { - + multiplier = 3.5; + currentLevel = oldBrokenDrone.getCargoSpace(); + originalLevel = Nomads.BASE_CARGOSPACE; + break; } case theft: { - + multiplier = 4; + currentLevel = oldBrokenDrone.getTheft(); + originalLevel = Nomads.BASE_THEFT; + break; } default: { + // Must specify an Upgrade Type return (Integer) null; } } + + double price = Math.pow( + (currentLevel - originalLevel + 5) * multiplier, 2.0); + return (int) Math.ceil(price); + } + + /** + * Determines if the statistic wanting to be upgraded is already at the + * maximum level. + * + * @return boolean + */ + public boolean isMaxLevel() { + // TODO - Implement max levels + return false; + } + + public UpgradeType getUpgradeType() { + return typeToUpgrade; } }