等級:25 - 爐火純青 經驗值:0 / 246 魔法值:14944 / 14944 生命值:6%
升級
  100%
TA的每日心情 | 奮斗 6 小時前 |
|---|
簽到天數: 5946 天 [LV.Master]伴壇終老
|
發表於 2016-8-5 17:17:14
|
顯示全部樓層
' F/ G( H6 S3 t& L, e. ^0 \先進行普通戰鬥
, H9 f+ ]% Q; G' P2 g) f/ n. y& B還有剩餘艦隊與死星
3 g- X! l$ b# H* ~& E, t) a) x便會進行毀月
& S o* u, c; O1 a% ^foreach ($fleetAttack as $fleetID => $fleetDetail)/ t0 i0 p b3 @9 S: I
{
7 {3 _1 |( M0 R4 } $fleetArray = '';
4 G) r+ d+ o0 x% t& y v $totalCount = 0;% m; {7 E6 H) Y4 F
8 R5 R( _$ d5 j( q& [ $fleetDetail['unit'] = array_filter($fleetDetail['unit']);
K1 F, L3 l# a; V& \3 O% o foreach ($fleetDetail['unit'] as $elementID => $amount)
3 Q& A# {5 V+ H3 l C { ( L1 o) D' q; Z+ @
$fleetArray .= $elementID.','.floattostring($amount).';';
4 r" _ U0 M0 t2 \1 a $totalCount += $amount;
( }; G' g1 K- L( w. x$ P( n* Y }
# `% N4 o1 x) q' M; @
4 ]: K2 Y& V1 t& C0 w7 v& L) F if($totalCount == 0)( x9 l6 J3 \8 _+ c' s$ R9 Q
{6 a Y+ [5 c" A& f' F
if($this->_fleet['fleet_id'] == $fleetID)1 N+ f, R4 H7 k
{
$ m2 R' N# M! P* K" m. r. e( g" F $this->KillFleet();) E" }, V; i4 r, Z2 x8 R3 N
}0 p4 u# ]/ V8 K
else
( y- L' d8 ^* t0 I) r3 K {
8 c2 G/ t: B- n, f7 B" h $sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";6 P' _5 K( `; Q$ W! v
$sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";
( J; V+ T' d0 d" A }6 Z5 f, [8 B3 t
8 m [: b& B: ]: u; s& v. Z $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";
! P' X5 y8 u6 M+ C5 H8 S }, ?3 T- g8 i$ m6 y) O) c
elseif($totalCount > 0)
+ y# M: Z* A1 y {, [) h* | ?4 _% L% k5 D
$sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";
* c' Q: X4 F1 S3 V* z $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";
: Y! c( H0 B8 A" ] }2 |# D8 k+ [3 g; _; y( F
else
5 L) `+ V; |7 U! C {
3 M: M F5 e5 |+ a4 N throw new Exception("Negative Fleet amount ....");
/ I3 ~, l% p8 x- C }
+ E8 K. @' @$ K2 D' v9 E" t }; c5 h. i& M+ E% @% u. N7 ]
- W" P" j' w, y& {* Q
foreach ($fleetDefend as $fleetID => $fleetDetail)
) W9 J( m" L' p3 S, N% J+ R {
/ X- R6 P/ | Z9 O$ C5 v0 O if($fleetID != 0)/ a) I- ]- k- ^* g0 D1 b
{
: e3 A! N) S- Z9 G1 r" \9 s $fleetArray = '';% ?$ a# K0 P& m% U0 z; t
$totalCount = 0;
! F* v# h; ^" I. K; t5 n/ K4 x
! P7 e; B# f# V7 Y8 y. ~" A% a $fleetDetail['unit'] = array_filter($fleetDetail['unit']);* i& k; ]/ W% g, F" d& a( d
foreach ($fleetDetail['unit'] as $elementID => $amount)
1 T, c* y& X! J; _. n: `% J {
% F# a/ g( y. z $fleetArray .= $elementID.','.floattostring($amount).';';
1 y% T- l1 k$ g" z& S3 d $totalCount += $amount;1 H. P1 k2 ?% A( \4 s
}
" a/ s- _% }# l7 E . \1 E, H' Q4 V6 \; r c0 W8 G
if($totalCount == 0). @. k5 f9 J! M) B
{5 z: A! O0 A3 n* p% \
$sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";
0 v7 ~; ]( Z0 n7 i) e& q $sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";( V1 a; p# Q% `- [
$sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";
9 J# s5 a! C; ^- b' M3 M# b& A }" A+ }9 n! r& w0 W u
elseif($totalCount > 0)1 m, J# j1 N9 ?2 V3 i7 W! a
{; p# _8 \1 ~1 h$ S0 y. o: S$ z" |
$sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";: [1 M! [. }3 @9 a+ T; c; q( L @
$sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";
' j6 A5 l& }) y" G' L }$ N" E" W/ C4 s& c3 b6 {; F# U
else
! z! S& p4 X# G" O7 Q( V% T4 q+ M {
- Z( Y2 F4 J$ Q* k6 Y throw new Exception("Negative Fleet amount ....");
. [: ~- C: T* y) @ }
. W) m- h' k. x }3 }+ P1 {) d4 x) h: E
else! S5 G' K$ {5 G+ j
{
4 m1 H L' E+ n+ T( U) R7 d9 k5 D/ y. k; P $fleetArray = array();; _3 [8 g7 s/ G' v: i$ V
foreach ($fleetDetail['unit'] as $elementID => $amount)
' t3 w; k/ S' B& U7 y- v { 6 ]4 W4 \" W7 u8 V& U8 P8 j
$fleetArray[] = $resource[$elementID]." = ".$amount;
/ d/ v" `7 [/ O6 T" x }
1 [* B9 O* ~& k
3 I$ K! {7 B: \ if(!empty($fleetArray))
9 r% q [* _. s0 Z3 W1 g; f; n0 ` { v4 E3 P8 S4 J7 q/ X
$sqlQuery .= "UPDATE ".PLANETS." SET ".implode(', ', $fleetArray)." WHERE id = '".$this->_fleet['fleet_end_id']."';";- I' e( F6 l, n6 x4 u; E
}
$ f. K4 `( M* {! V1 ^% K }. n) U; ?) F2 |2 |& V1 f+ \6 }3 e
}
3 p. E- `$ u( h$ J7 c" M6 F0 R; A % K' `) |% ?/ Z3 U P! v3 ~/ H
$GLOBALS['DATABASE']->multi_query($sqlQuery);% M3 l9 B5 n, n$ k- I9 M, M. C7 E
+ i$ D- y* y* E if ($combatResult['won'] == "a")4 B8 p. r* c7 K$ g2 T
{
9 A0 {/ f& L2 f& [( t8 g require_once('calculateSteal.php');
y5 ]2 d1 `3 y i $stealResource = calculateSteal($fleetAttack, $targetPlanet);$ X. T) g! h8 ]( T2 j
}
8 {9 e, s( s( F, Q/ m( {
# H5 S2 J& h- ^; }4 J if($this->_fleet['fleet_end_type'] == 3)6 ~6 g" H# l9 i% k$ n, M6 T( J0 \
{$ n( _* q1 E1 Y. s/ Q' v1 s) V) Y2 w
// Use planet debris, if attack on moons
4 P6 z. {) V9 f5 R, q' |, `, |& } $targetPlanet = array_merge(/ h: y2 W! u) `* s4 A
$targetPlanet,+ _" n8 u+ z9 U$ X, `
$GLOBALS['DATABASE']->getFirstRow("SELECT der_metal, der_crystal FROM ".PLANETS." WHERE id_luna = ".$this->_fleet['fleet_end_id'].";")
3 @! o. G! I8 I );
7 d9 j9 C* h) L0 u K( P7 J$ V }9 z( |0 d+ G! Y1 ?5 C
+ E/ l: } K! ~ foreach($debrisRessource as $elementID)( c( ?; Q' R. D* q
{
' H2 a& g/ O1 V' O $debris[$elementID] = $combatResult['debris']['attacker'][$elementID] + $combatResult['debris']['defender'][$elementID];8 p$ Q0 c+ Z* v m
$planetDebris[$elementID] = $targetPlanet['der_'.$resource[$elementID]] + $debris[$elementID];! S0 W7 P8 f" _; s
}% G7 l, k2 c! h& _
9 q4 i* z) Y* ~9 w; [( M) p $debrisTotal = array_sum($debris);8 Q* ~: b. y, f- @. m
+ x( ]4 k F& g8 a: z$ }# O j' R $raportInfo = array(* B3 x% y) Q; A( K/ _* h L8 {
'thisFleet' => $this->_fleet,
% A9 a' i6 U! y8 D8 X% l' ~" V 'debris' => $debris,0 t4 A& k. }: {- s
'stealResource' => $stealResource,
+ q( ]6 I- E3 `! O 'moonChance' => null,
0 v+ a. L- @4 V6 O 'moonDestroy' => true,2 B) B; |8 \1 ?
'moonName' => null,
0 M8 s$ J' ~0 B& e 'moonDestroyChance' => null,& r2 y% y+ s+ h5 A& T, v+ O
'moonDestroySuccess' => null,- O: Y6 o5 L' q9 z# [ g) `
'fleetDestroyChance' => null,
; H& S+ n2 {. t% ~. W1 m+ L% v7 R- \ 'fleetDestroySuccess' => false,
% H5 S% a( Z4 \4 v3 N2 {1 z );
( r8 e! ?$ A8 c6 R% Y( m1 E" P; e. z
$destext = "";6 o0 q6 X3 K, k- \+ r$ b
3 i) e: k% R' r$ u
switch($combatResult['won'])( Z+ g4 ~+ Y( C9 C/ j8 L
{# [' R: x6 b0 k, U/ G* ?
case "a"://勝利+ F% S, G' A6 Z% p0 e, N3 V
$moonDestroyChance = round((100 - sqrt($targetPlanet['diameter'])) * sqrt($fleetAttack[$this->_fleet['fleet_id']]['unit'][214]), 1);
+ I" ^* H- `" b4 v/ E: I# w, k8 h( q" V2 i 7 I! r F: o1 m
// Max 100% | Min 0%! N* q+ Q9 A: x6 J
$moonDestroyChance = min($moonDestroyChance, 100);
* ^( p( u% R2 m8 B" {1 u" I) U $moonDestroyChance = max($moonDestroyChance, 0);
. F/ Y4 q' e: s+ I
3 f% K+ G# Z* E) \" U* a3 i $randChance = mt_rand(1, 100);
$ S0 _- ?7 g, y' G( ^) |$ Fif ($randChance <= $moonDestroyChance)
& z0 K0 `! R: q+ i$ W9 G- G( V//毀月成功 |
|