等級:25 - 爐火純青 經驗值:0 / 246 魔法值:15214 / 15214 生命值:6%
升級
  100%
TA的每日心情 | 奮斗 6 小時前 |
|---|
簽到天數: 6046 天 [LV.Master]伴壇終老
|
發表於 2016-8-5 17:17:14
|
顯示全部樓層
* P! B5 E& |/ V% D先進行普通戰鬥
' C7 z" Y* `. d6 I1 I還有剩餘艦隊與死星
; w$ a/ J/ Z5 Z+ m u* i便會進行毀月, ]0 m9 e2 s! i+ a% u
foreach ($fleetAttack as $fleetID => $fleetDetail)
/ Y& O' F W0 P$ [% \ h {/ E* J0 j) Z$ x3 c1 \( s( }7 F
$fleetArray = '';
3 a( r: r8 f2 X, K( @; `: D$ [ $totalCount = 0;
# l1 V( Q6 e, k5 O5 V6 O" G1 C
2 S) G% O% E1 y$ | $fleetDetail['unit'] = array_filter($fleetDetail['unit']);
- c @$ R2 t, Y$ e foreach ($fleetDetail['unit'] as $elementID => $amount)
& B5 O7 T& \0 Y f: z( i/ k3 m { 5 W- x# s J$ M+ \
$fleetArray .= $elementID.','.floattostring($amount).';';( Z; }$ @, ~% u( J, E* q% C" ]
$totalCount += $amount;3 H3 ]" |! }9 }( \! h
}
$ y- R ^2 s+ V" ]9 D7 N 3 @1 S9 x: _. K' f, {
if($totalCount == 0)
( g& d" ^2 O, |1 I {9 b, h3 N! F5 q$ F) C
if($this->_fleet['fleet_id'] == $fleetID)! y- w' L p/ g4 ]* z
{
1 h- P( |5 q: p& d: U $this->KillFleet();
$ s7 {+ Z4 c& W' r9 s% X& i }# N. H9 x! y. a' Q
else2 `/ T# n2 T+ n3 E
{" @! c$ @. k& _* q
$sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";
/ ?6 h1 V3 |" ]% c) L3 q( l0 Q $sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";- Q8 h: V% @( _0 H5 u
}9 P, E0 ~2 D' E& P9 |3 X3 O8 d5 g
- H; O% q3 Y, M1 T7 w* F i
$sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";1 O9 n3 m( }8 r# D
}5 @. c1 M+ ^5 j- L% y
elseif($totalCount > 0)4 W* o. Y7 I2 T H/ ^9 R
{( ?" f9 I+ ^$ Q. _& Q m* l
$sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";
& P# E. q5 ^% E: u, | $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";
+ @& ~( o! k/ |6 w }
" |. f# _3 m# R4 A3 j' { else7 D/ S" G6 b, i1 _2 q- j
{
0 E# ^) w9 X3 E3 H' e/ G4 [7 m throw new Exception("Negative Fleet amount ....");- Q; x8 p) [) f+ o- L' e" F
}( @, h6 V) R) a
}( @2 `' i- Y# |0 C" r/ z( q
5 F2 G; p: j( p0 |1 V! _* o2 J foreach ($fleetDefend as $fleetID => $fleetDetail)
0 A3 q1 i- P- j. o# L/ V {; {$ |$ ?/ r! {# f4 e3 E3 q
if($fleetID != 0)1 s% Y' ], N- q: t1 b% ?8 b) l+ }3 _
{2 ~* ^* j' `. G0 t: Q$ B
$fleetArray = '';3 ^) ?! S8 _; N* G
$totalCount = 0;2 D/ S% T' V# }
, w3 J! G; x. i3 e: m% o5 r
$fleetDetail['unit'] = array_filter($fleetDetail['unit']);
+ s1 y5 ?! T* W4 }# v- O# b foreach ($fleetDetail['unit'] as $elementID => $amount)
$ p3 y! G; Z" w* f { ; R2 c7 U. U3 h% O
$fleetArray .= $elementID.','.floattostring($amount).';';# ? W! J% f/ { z9 i: c
$totalCount += $amount;
8 u# W; d' G: u* h" z }
1 Z- q* y6 @' ^6 V
. H0 `- F0 {" b if($totalCount == 0)4 ~0 T+ }" y f% w: ~
{
7 E( u$ w# c; P, ~% d/ e% Z: V $sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";"; r: V G- I: _( r/ a2 ]& K
$sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";) B$ h$ J2 G+ A, u/ S
$sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";. h2 \8 i7 d5 p T) k; L" a- x
}
, v- {4 M4 Y. A! m" C elseif($totalCount > 0)- H+ |, M4 M) X/ p- P& |5 ^
{/ e, ]# h3 Y8 {- r3 R
$sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";
Q$ V3 [1 E9 R9 _ p u/ \ $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";1 T8 C" @& x2 x- o H+ J/ B
}% \ B0 b; Z6 Q% k- q
else
2 r' Q, m; B9 c4 d6 v# f {/ @$ r! o) }% _! `3 w) Y
throw new Exception("Negative Fleet amount ....");( i: h* F0 D3 y4 H# x) B
}8 e$ \! o# X; s$ m' { p3 j
}- I8 S$ z' P# y* P& \
else
: @. D9 p/ V4 U' [ {' Y6 ], T+ w' ]
$fleetArray = array();! s1 Y4 B! S% a* U3 y
foreach ($fleetDetail['unit'] as $elementID => $amount)
. |5 N! S" G" a$ C5 k% o0 Z" Z, C' D1 } {
. N5 L1 m) a" {% D9 f9 B9 U $fleetArray[] = $resource[$elementID]." = ".$amount;$ `3 c6 V+ G/ d: m8 f9 A
}9 z# K; Y8 E3 U
0 m2 K v$ J! [, m5 X
if(!empty($fleetArray))
* |0 M. S+ S4 ^8 M { ?. w) ? V, Y) w1 b
$sqlQuery .= "UPDATE ".PLANETS." SET ".implode(', ', $fleetArray)." WHERE id = '".$this->_fleet['fleet_end_id']."';";
1 y- M. J4 u* B# H9 e2 E0 I }
% M7 h" u2 n: |( S$ ?) [ }
o4 V( m8 @6 B' g }
`; N+ K/ Y0 v! g& n # X+ `% W+ f7 z( T7 Z2 I1 v
$GLOBALS['DATABASE']->multi_query($sqlQuery);* \& ~8 {* }) s& M" i6 c
/ X; w7 R( g5 A" Q1 q
if ($combatResult['won'] == "a"): O8 i" g6 B, I2 `- S
{& r- I+ _1 y4 x
require_once('calculateSteal.php');
7 G8 i& a+ i; Y" o. o7 z6 B# B $stealResource = calculateSteal($fleetAttack, $targetPlanet);& a% K- |; |1 f1 G) C& w) S
}$ _+ R( Z9 ~6 k1 G3 x' I
s" P$ `9 D6 P# Q3 N/ b- r if($this->_fleet['fleet_end_type'] == 3)
% P/ Z# K( ^' B( a' d* N. W {2 I( K0 m; R- e% d( t0 b6 Q
// Use planet debris, if attack on moons
( U" U4 y, S/ o% S1 I* ?, M. j2 A $targetPlanet = array_merge(: Y5 L2 b, m+ v
$targetPlanet,$ Z: I1 Z/ A/ r. |( N0 J
$GLOBALS['DATABASE']->getFirstRow("SELECT der_metal, der_crystal FROM ".PLANETS." WHERE id_luna = ".$this->_fleet['fleet_end_id'].";")" e5 k0 O8 Q; C. m! b1 M7 f3 d+ z
);
F: V" U5 }4 e }
+ r* m- v* V' m' j, C; y( J
; [! k6 N; T* A# s$ ?) P foreach($debrisRessource as $elementID)
. `% Y. z* }5 Z! y$ n4 N' C- v {
6 ~& x6 f. A" Y6 V+ U# p, P, D: n- J $debris[$elementID] = $combatResult['debris']['attacker'][$elementID] + $combatResult['debris']['defender'][$elementID];* Q* Z2 @5 t( I0 `* T7 L
$planetDebris[$elementID] = $targetPlanet['der_'.$resource[$elementID]] + $debris[$elementID];
3 a+ }7 Z0 Q* Z; B$ | }
3 Q" Z' w( D" V: R 8 F5 \; U1 @# Z6 w0 `! v8 Z% Z% O
$debrisTotal = array_sum($debris);3 I# J( r% D, R# f- _
6 ~+ g+ X. y4 ~4 g. i $raportInfo = array(
4 y3 @: R; t5 d) G! W 'thisFleet' => $this->_fleet,
% ^7 s$ o! v( A" ` 'debris' => $debris,- J/ j& r6 G7 e/ x) M
'stealResource' => $stealResource,1 v! e5 g2 u7 p. N1 A* ]1 ^) R% f6 m; Y
'moonChance' => null,
R( `- `4 M Q% O, x; k% @ 'moonDestroy' => true,
& }+ F" {: g& \8 ~( N 'moonName' => null,2 u- y& X/ U' F o. B
'moonDestroyChance' => null,, F$ V3 J: }( }0 a( i
'moonDestroySuccess' => null,% V: A! ^* y3 n6 J; o
'fleetDestroyChance' => null,) M7 n, u) a: T
'fleetDestroySuccess' => false,/ Q/ \: v4 B* i8 i! l" X2 E
);5 a* X; X2 s/ X9 Z! i0 ^6 ^, O1 R8 a
- x2 Y# |8 c9 [% U& g+ x
$destext = "";
, U, o# E- o' s v0 A + u: {' Y: S" M
switch($combatResult['won'])+ J% Q: T) o* y* ?# }
{9 T+ W: i& d \
case "a"://勝利; b k% y( i4 |( L3 G1 Q8 |
$moonDestroyChance = round((100 - sqrt($targetPlanet['diameter'])) * sqrt($fleetAttack[$this->_fleet['fleet_id']]['unit'][214]), 1);5 R' D5 ~8 w7 H3 t
5 e _: j5 ^; w% e% z0 u0 A; t8 o. n
// Max 100% | Min 0%9 f" [3 W+ E' n5 P/ v
$moonDestroyChance = min($moonDestroyChance, 100);
# Y9 {3 E: o, R' N L7 R( ?& V $moonDestroyChance = max($moonDestroyChance, 0);
0 }% O2 R0 u# b' Q1 c# M. Y ^) U* U2 X1 q5 d" }8 T
$randChance = mt_rand(1, 100); D5 |, a$ x1 P2 T: G
if ($randChance <= $moonDestroyChance) [3 b" C, t7 Z* x9 ?# g) J1 ]4 J
//毀月成功 |
|