等級:25 - 爐火純青 經驗值:0 / 245 魔法值:14002 / 14002 生命值:5%
升級
  100%
TA的每日心情 | 奮斗 2 小時前 |
---|
簽到天數: 5644 天 [LV.Master]伴壇終老
|
發表於 2016-8-5 17:17:14
|
顯示全部樓層
* ], T4 ]3 w% R" @# X8 A
先進行普通戰鬥
+ f R# r# p' W7 x2 g# E6 T還有剩餘艦隊與死星
0 A5 S1 Z6 m) h. G+ M便會進行毀月
/ j( F( Z& ]$ m4 W) Iforeach ($fleetAttack as $fleetID => $fleetDetail)3 S) [; a4 n$ i. y' I$ J
{8 l/ o J; [& k
$fleetArray = '';, s/ a" ?# F: d$ U: M7 i
$totalCount = 0;; j! {1 a: Y4 C: l* A7 r
; [. x& o) ~ w) u+ o $fleetDetail['unit'] = array_filter($fleetDetail['unit']);
; F+ A) G3 ]' o7 y g# K1 f foreach ($fleetDetail['unit'] as $elementID => $amount)
. J; N" `& d: O+ d& a: Y) h {
, ]2 @' t1 y+ r. s% d* x) b $fleetArray .= $elementID.','.floattostring($amount).';';' p0 w* O$ A2 s; F' B3 f4 _
$totalCount += $amount;5 D2 }9 T2 |3 R3 j
}6 t8 s, c$ d5 F; r2 a. I
' K7 n" o$ c1 I) w1 i" h7 R if($totalCount == 0). e0 m/ Z" x( [9 V9 V7 k- Z
{
1 l- w$ r7 d: ~0 p" I if($this->_fleet['fleet_id'] == $fleetID)
) C% q* j0 b, p0 S/ ~ {2 k& x" r$ \: W* _: |# d
$this->KillFleet();
4 z" f8 V( s7 J8 M) f' K2 |- O }* i( N# T8 J3 e5 `* F
else9 f4 @9 j% J5 j; G2 b
{
: R* _; I5 F: o8 Q8 r& k* C/ I( F $sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";$ G) Y' B* b1 h# d* o
$sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";# T, V" t. [, s
}
9 _. ]1 E2 i: E" X& N 9 G. v( I7 e3 b! u* z- s
$sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";
. o3 @) N0 L( D3 e* o% O }# v6 R5 S& L* X( V
elseif($totalCount > 0)
8 Q0 o1 c4 S2 o( l+ V {5 }$ I6 G* ^8 w/ N- \8 X
$sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";
( Q. h. `1 {8 a# e# k% T( r $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";
" b$ r$ M& L: j( n, K( i }
) ?8 n5 U% l' N, a$ a* b d5 K8 O1 q else
P6 v$ T* F" z; k {1 \1 {# D7 d) p! L4 h
throw new Exception("Negative Fleet amount ....");- R, ~1 x6 F2 I& X+ t
}
3 D* t' s5 G! r, `, F! n }! z3 n* l) |% }2 @4 x; T! |$ F f" y
1 P* `4 h( c& J) `8 v
foreach ($fleetDefend as $fleetID => $fleetDetail)2 r/ Q( b( f8 |$ u0 S6 p- m
{
& ^" V1 l% C/ S) r% S if($fleetID != 0)% v0 A0 m/ z0 z! w' ]
{
( H$ T) M& Z4 p. K- l5 l $fleetArray = '';
- l6 D' A$ }1 g1 V: j3 B7 e $totalCount = 0;
7 r% H8 o# G) S" |; N) c+ b
8 r. q5 K8 V' Z. \4 ]4 ] $fleetDetail['unit'] = array_filter($fleetDetail['unit']);
4 [ B8 H& V/ r2 P9 j, j) v foreach ($fleetDetail['unit'] as $elementID => $amount), Q4 \( L' y0 L* \8 l- G# a
{
0 O: h( i3 `' n' c, _/ I7 Y $fleetArray .= $elementID.','.floattostring($amount).';';
) g% J) W5 `! O; H4 r $totalCount += $amount;3 a* G3 p6 U0 ]9 f6 |3 N
}- s% g- S% s/ Q# F3 }6 b3 I0 t
/ r5 e; I' m, k# D8 U( u1 V if($totalCount == 0)
7 |" z5 l' h& W- ` {. @* n( e, T5 p$ P! ]
$sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";4 I# v- b, X5 X* m `& c
$sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";4 |: A8 i9 ?- R1 g3 f- b# l
$sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";
1 o8 S; ]! [+ y) z: {+ m, P }. l! T$ D* }' r0 f1 C
elseif($totalCount > 0)
0 A: y; @6 A$ U- ^6 S2 s {+ h7 N, O+ y, x# s
$sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";" p Z+ b2 W. p O4 @! g
$sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";- d+ K0 C* b6 C+ j
}* Y# D2 A( N4 s+ Y" n
else
* u8 X% J! B, I& i {
2 O( J0 y5 S( [) F% E$ r throw new Exception("Negative Fleet amount ....");
) \: a$ `# y* Q e }
0 X# P( Q: y# p; m, r0 s, I5 F }% n+ p1 [3 T/ y9 F0 E! ]$ K9 J+ l
else4 e/ o4 z+ C. }
{) D+ e2 l' y6 N, j6 ]; a: U. X
$fleetArray = array();
/ _& |& S6 r: Q foreach ($fleetDetail['unit'] as $elementID => $amount), q" H6 e$ W. j9 W0 D+ T$ r
{
6 v& K m4 \3 [$ M5 G8 G; I. g/ d $fleetArray[] = $resource[$elementID]." = ".$amount;
\( k! Q3 D% s& t% ?( N, P }3 d' `# u/ m- J8 S! g
0 N1 t! U6 ~6 b4 _, T/ t
if(!empty($fleetArray))+ \5 p- T- j2 ~3 F, q, V1 g; e
{
1 q9 C2 @6 `3 W- [5 i $sqlQuery .= "UPDATE ".PLANETS." SET ".implode(', ', $fleetArray)." WHERE id = '".$this->_fleet['fleet_end_id']."';";
5 X0 |6 n H( T1 i6 D6 `4 \ }
1 z, j+ H/ p$ q0 G }# A! F/ |: ^ x' b; s
}
3 I1 V* }, W1 u0 U/ {: E
. }7 \ U5 b( c- p $GLOBALS['DATABASE']->multi_query($sqlQuery);
" [& a. k' ~' X6 ` # Z3 d3 @# z8 d3 n! f$ Q
if ($combatResult['won'] == "a")
9 ^+ }. o; \' }5 V: d {# u0 s7 `/ R: s) z; H
require_once('calculateSteal.php');/ x% h& {, {! t1 D
$stealResource = calculateSteal($fleetAttack, $targetPlanet);
; P% @- _8 c7 { x9 B- ~# j. Z& \ }
' M; d! Z+ _' u. k
7 x- ^7 {% I0 F: N! y: k% i' [ if($this->_fleet['fleet_end_type'] == 3)
T& p6 [/ {* R0 W {: F4 a% n$ O7 g1 x: z( B
// Use planet debris, if attack on moons0 i# H, [, u8 Q! `0 T) H
$targetPlanet = array_merge(
# P. ] |9 G: K4 ]' H9 N $targetPlanet,
: c4 @( e4 H. w! z/ W" @ $GLOBALS['DATABASE']->getFirstRow("SELECT der_metal, der_crystal FROM ".PLANETS." WHERE id_luna = ".$this->_fleet['fleet_end_id'].";")) U% }3 ? H5 F! D1 A
);
4 k0 L6 c6 w6 V. P& ~3 c! S }
! x* s9 T% Z0 C% e
- `) V# T* O& J5 M* n; ^: c foreach($debrisRessource as $elementID)
1 X( |( [7 C8 V J {+ B" l4 _0 B6 S9 v* M0 P# P7 I
$debris[$elementID] = $combatResult['debris']['attacker'][$elementID] + $combatResult['debris']['defender'][$elementID];& T6 |" y' }# f% P" n
$planetDebris[$elementID] = $targetPlanet['der_'.$resource[$elementID]] + $debris[$elementID];
, ~% h4 a1 A, z5 m7 `/ W }
2 B+ ~; q4 \2 K7 H7 |1 N
, d1 U# _: J$ o/ H! W- g $debrisTotal = array_sum($debris);
$ d: u' d1 G! K* ]0 @7 C ' }" Z) \2 T3 V. z7 h2 u2 N+ b" f
$raportInfo = array(
) k4 D6 Q- a) [" Q$ M3 ? 'thisFleet' => $this->_fleet,9 T7 `* y X9 R8 d
'debris' => $debris,
5 W8 ~3 Q2 x6 ?4 a5 R/ r! l 'stealResource' => $stealResource,
* u% N) q- X0 X" u2 _8 r" R 'moonChance' => null,
, P5 C3 x% d3 _' S 'moonDestroy' => true,
9 z: M4 r1 Q, I+ `$ o: E 'moonName' => null,
9 x5 S6 D: ^( e6 J! D 'moonDestroyChance' => null,
/ w- N: i; T. K' [0 N 'moonDestroySuccess' => null, i7 u- b# f: H
'fleetDestroyChance' => null,
: r4 p' g" r( l1 G+ n6 s$ X 'fleetDestroySuccess' => false,
^/ [6 g; t+ P( p; k+ Z7 b );, ~- ?# @ K/ Z6 {
8 F4 v0 @2 E0 L/ w: `7 X $destext = "";* z A3 y4 J4 N
$ Q& D) v) |8 L9 @$ C
switch($combatResult['won']) W- s& b' z/ x) ~* E9 r9 c1 }! Y; U. ?
{% T5 `3 b! y6 u6 {! m
case "a"://勝利
4 P0 W2 j+ Y. r+ Q1 s5 V $moonDestroyChance = round((100 - sqrt($targetPlanet['diameter'])) * sqrt($fleetAttack[$this->_fleet['fleet_id']]['unit'][214]), 1);
+ U& J- U4 H7 t" g! ~9 i1 ^, S5 c * L7 ^+ v5 d3 S
// Max 100% | Min 0%6 i: b' Y+ n6 I5 l* i0 _
$moonDestroyChance = min($moonDestroyChance, 100); L$ @+ l5 L/ v5 @; d
$moonDestroyChance = max($moonDestroyChance, 0);3 s( g4 R* m! u2 M( e' _$ k. k
: G1 `/ Z0 e! Y* P$ h
$randChance = mt_rand(1, 100);4 ^( N3 t) b" o" @+ O6 l; P% A0 G
if ($randChance <= $moonDestroyChance)2 \* T' a- B+ y
//毀月成功 |
|