Örnek basit bir kod ekledim, formüller değiştirilebilir, şans eklenebilir, kritik olasılık eklenebilir, vb. Ancak basit mantıkla bu şekilde yapılabilir.
Not: PHP bilgim fazla yok, genelde C# kullanıyorum, o yüzden kod kalitesi pek iyi olmayabilir.
class Player { 
    public $Name, $Hp, $Attack, $Defence;
    
} 
class WarHelper{
   public static function  AttackToPlayer($from, $to){
       
        //Birinci oyunucunun vereceği hasar
        $fromDamage = $from->Attack - $to->Defence;
        
        //Bu formülde birinci oyuncunun defansı 5, kullanıcının saldırısı da 5 bu yüzden hasar almayacak
        //İkinci oyuncunun vereceği hasar
        $toDamage = $to->Attack - $from->Defence;
        
        //Hasar veriliyor
        $from->Hp -= $toDamage;
        $to->Hp -= $fromDamage;
        
        //İki oyuncunun bilgileri geri dönüyor
        return array($from, $to);
    }
}
//Birinci oyuncu yaratılıyor
$player1 = new Player();
$player1->Name = "Aist";
$player1->Hp = 70;
$player1->Attack = 10;
$player1->Defence = 5;
//Birinci oyuncu yaratılıyor
$player2 = new Player();
$player2->Name = "Kyzaghan";
$player2->Hp = 100;
$player2->Attack = 5;
$player2->Defence = 2;
$result = WarHelper::AttackToPlayer($player1, $player2);
var_dump($result);
?>
Çıktı
array(2) { [0]=> object(Player)#1 (4) { ["Name"]=> string(4) "Aist" ["Hp"]=> int(70) ["Attack"]=> int(10) ["Defence"]=> int(5) } [1]=> object(Player)#2 (4) { ["Name"]=> string(8) "Kyzaghan" ["Hp"]=> int(92) ["Attack"]=> int(5) ["Defence"]=> int(2) } }
 
  
 
                     
                                                    