2020-07-29 15:31:44 +02:00
#!/usr/bin/php
< ? php
$listEncounters = array (
## The Dread Fortress
'Nefra, Who Bars the Way {3266533082005504}' , 'Gate Commander Draxus {3273924720721920}' , 'Grob\'thok, Who Feeds the Forge {3273929015689216}' , 'Corruptor Zero {3273933310656512}' , 'Dread Master Brontes {3273937605623808}' ,
## Eternity Vault
'Soa {2289823159156736}' ,
## Assation
'The Writhing Horror {2938874321960960}' , 'Heirad {2938002443599872}' , 'Ciphas {2938011033534464}' , 'Kel\'sara {2938006738567168}' , 'Operator IX {2942606648541184}' , 'Kephess the Undying {2937620191510528}' , 'The Terror From Beyond {2978340776443904}' ,
##
'The Eyeless {3328380611067904}' ,
## Toborro
'Golden Fury {3232800408862720}' , 'Golden Fury {3232817588731904}' ,
## The False Emperor
'Tregg the Destroyer {1690314444111872}' , 'Jindo Krey {770959514533888}' , 'HK-47 {770955219566592}' , 'Chondrus Berani {1690331623981056}' , 'Sith Entity {1695962326106112}' , 'Forsaken Sith Lord {781830076760064}' , 'Darth Malgus {770963809501184}' ,
## Battle of Rishi
'Marko Ka {3533564083699712}' , 'Rarrook {3533559788732416}' , 'Lord Vodd {3533585558536192}' , 'Shield Squadron Unit 1 {3533594148470784}' , 'Darth Yun {4257506591244288}' ,
## Objective Meridian
'Commander Aster {4258021987319808}' , 'Darth Malgus {4257502296276992}' ,
## Heart of Ruin
'Colossal Monolith {3541140406009856}' ,
##
'Toxxun {3340011382505472}' ,
## Mutated Geonosian Queen
'Mutated Geonosian Queen {4197299739688960}'
);
$dmgTypes = array ( 'energy' , 'elemental' , 'kinetic' , 'internal' );
$instTypes = array ( 'Story' , 'Veteran' , 'Master' );
$zoneNames = array (
# Planet zones
'Corellia' , 'Coruscant' , 'CZ-198' , 'Rishi' , 'Taris' , 'Tatooine' , 'Voss' , 'Yavin 4' , 'Ziost' ,
# Instances zones
'Lair of the Eyeless' , 'Toborro\'s Palace Courtyard' , 'The False Emperor' , 'Battle of Rishi' , 'Objective Meridian' , 'Hive of the Mountain Queen'
);
class loadFile
{
// Declare properties
public $filename = " " ;
public $handle = null ;
// Constructor
public function __construct (){
// echo 'The class "' . __CLASS__ . '" was initiated!<br>';
$this -> fileName = " " ;
$this -> handle = null ;
}
// Destructor
public function __destruct (){
// echo 'The class "' . __CLASS__ . '" was destroyed.<br>';
}
// Method to get the filename
public function getFileName (){
return $this -> fileName ;
}
// Method to set the filename
public function setFileName ( $filename ){
$this -> fileName = $filename ;
}
// Method to get the handle content
public function getHandle (){
// TODO Check file exists
$this -> handle = fopen ( $this -> fileName , " r " );
// if($this->handle) {
// while (($line = fgets($this->handle)) !== false) {
// echo $line;
// }
// fclose($this->handle);
// } else {
// $this->handle = False;
// }
return $this -> handle ;
}
}
// class Event:
// regex = r'[\[<\(]([^\[<\(\]>\)]*)[\]>\)]'
// def __init__(self, x):
// data = re.findall(Event.regex, x)
// data.append('')
// self.to_string = ' '.join(data)
//
// dateandtime = datetime.strptime(list(sys.argv[1].split("_"))[1]+" "+data[0], '%Y-%m-%d %H:%M:%S.%f')
//
// self.date = dateandtime
// self.source = Entity(data[1])
// self.target = Entity(data[2])
// self.ability = Ability(data[3])
// self.effect = Effect(data[4])
// self.value = Value(data[5])
// self.threat = Threat(data[6])
class LogEvent
{
// Properties declaration
public $event = " " ;
// public $date = "";
// public $source = "";
// public $target = "";
// public $ability = "";
// public $effect = "";
// public $value = 0;
// public $threat = 0;
// Constructor
public function __construct ()
{
// echo 'The class "' . __CLASS__ . '" was initiated!<br>';
$this -> event = " " ;
// $this->date = $date;
// $this->source = $source;
// $this->target = $target;
// $this->ability = $ability;
// $this->effect = $effect;
// $this->value = $value;
// $this->threat = $threat;
}
// Destructor
public function __destruct (){
// echo 'The class "' . __CLASS__ . '" was destroyed.<br>';
}
// Method to set the event
public function arrayEvent ( $logEvent ){
// [23:40:42.150] [@Comendatore] [Combat Training Target MK-10 {2816257300627456}:133000004817] [Ion Pulse {2199843594305536}] [ApplyEffect {836045448945477}: Damage {836045448945501}] (7659* elemental {836045448940875}) <19146>
// [date] [src] [target] [ability] [effect] (value) <threat>
$isMatching = preg_match_all ( '/[\[<\(]([^\[<\(\]>\)]*)[\]>\)]/m' , $logEvent , $this -> event , PREG_SET_ORDER , 0 );
return $this -> event ;
}
}
// $handle = fopen("combat_2020-06-11_18_06_42_493608.txt", "r");
$handlecontent = new loadFile ;
$handlecontent -> setFileName ( " combat_2020-07-25_22_39_58_532658.txt " );
$handleresult = $handlecontent -> getHandle ();
if ( $handleresult ) {
$totalAmount = 0 ; $totalThreat = 0 ;
while (( $line = fgets ( $handleresult )) !== false ) {
$log = new LogEvent ;
$log = $log -> arrayEvent ( $line );
if ( array_key_exists ( 6 , $log ) );
// print_r($log);
$logDate = $log [ 0 ][ 1 ];
$logSource = $log [ 1 ][ 1 ];
$logTarget = $log [ 2 ][ 1 ];
$logAbility = $log [ 3 ][ 1 ];
$logEffect = $log [ 4 ][ 1 ];
$logValue = ( isset ( $log [ 5 ][ 1 ]) && ( $log [ 5 ][ 1 ] != 0 )) ? $log [ 5 ][ 1 ] : null ;
$logThreat = isset ( $log [ 6 ][ 1 ]) ? $log [ 6 ][ 1 ] : null ;
print ( " Date : " . $logDate . " Source : " . $logSource . " Target : " . $logTarget . " Ability : " . $logAbility . " Effect : " . $logEffect . " Amount : " . $logValue . " Menace : " . $logThreat . " \n " );
2020-07-29 15:59:43 +02:00
#TODO
// Start CCombat detection
2020-07-29 15:31:44 +02:00
// if( $log[1][1]
$totalAmount += $logValue ; $totalThreat += $logThreat ;
}
print ( " Total Damages : " . $totalAmount . " \n " );
print ( " Total Menace : " . $totalThreat . " \n " );
} else {
echo " Error while loading file handle ! " ;
}
?>