XGProyect / XG-Proyect-v3.x.x

XG Proyect is an OGame clone open-source web application framework designed for creating game clones, particularly those inspired by the popular game OGame, set in a vast and captivating space-themed universe.
https://xgproyect.org
GNU General Public License v3.0
147 stars 101 forks source link

[Feature] Basic income factor multiple economy speed #417

Open jonamix-ar opened 3 years ago

jonamix-ar commented 3 years ago

When registering in the Golden universe of ogame in English the basic resources are Metal: 30 and Crystal 15

But where I play in the universe hat says Metal: 120 and Crystal: 60

so draw the conclusion that they are also multiplied by the speed of the economy

Universe Dorado: x1 Economy Speed x1

Universe Sombrero: x4 Economy Speed (Clarification, I am in position 8 of this universe and in that position there is a metal bonus that also affects the basic production) x4

Universe Quasar x9 Economy Speed x9

BeReal86 commented 3 years ago
8
jonamix-ar commented 3 years ago

Esto seria así Recurso básico metal = 30 Recurso básico cristal = 15

Velocidad universo ejemplo = 4

Calculo sin el bonus de posición Para el metal Formula: (básico metal Velocidad del universo general) Ejemplo: (30 4) = 120

Para el cristal Formula: (cristal_basico Velocidad del universo general) Ejemplo: (15 4) = 60

Calculo con bonus de posición Para el metal

Si es posición 6 y 10 la formula seria así = 17% Formula: floor((básico metal Velocidad del universo general) 1.17); Ejemplo: floor((30 4) 1.17) = 140;

Si es posición 7 y 9 = 23% Formula: floor((básico metal Velocidad del universo general) 1.23); Ejemplo: floor((30 4) 1.23) = 147;

Si es posición 8 = 35% Formula: floor((básico metal Velocidad del universo general) 1.35); Ejemplo: floor((30 4) 1.35) = 162;

De la posición 6 a la posición 10, se ha implementado un bonus de producción de metal (similar al bonus de cristal de las posiciones 1, 2 y 3). El bonus implica el aumento de producción de metal en tanto que el planeta se encuentre en esas posiciones Las posiciones 6 y 10 dan un 17% más de metal. Las posiciones 7 y 9 dan un 23% y la posición 8 da un 35% más de metal. De esta manera la posición 8 lleva el mayor porcentaje mientras que 6 y 10 llevan el más bajo.

Calculo con bonus de posición Para el cristal

Si es posición 1: Formula: floor((básico cristal Velocidad del universo general) 1.3); Ejemplo: floor((15 4) 1.30) = 78;

Si es posición 2: Formula: floor((básico cristal Velocidad del universo general) 1.225); Ejemplo: floor((15 4) 1.225) = 74;

Si es posición 3: Formula: floor((básico cristal Velocidad del universo general) 1.2); Ejemplo: floor((15 4) 1.2) = 72;

Los bonus de cristal fueron reajustados Position 1: 30% Position 2: 22.5% Position 3: 15%

Dejo esta imagen como prueba de los cálculos que hice 10

Es raro que para el deuterio no haya bonus pero seguramente tarde o temprano lo colocaran.

LucasKovacs commented 2 years ago

This issue is related to https://github.com/XGProyect/XG-Proyect-v3.x.x/issues/377, seems to me that I will tackle both of them at the same time.

jonamix-ar commented 2 years ago

This issue is related to #377, seems to me that I will tackle both of them at the same time.

It is the same, when I put it I thought I had put it in Bereal's but I missed XD it's just how the table would work. And more detailed

jonamix-ar commented 1 year ago

Estoy tratando de aprender un poco mas de como funciona ogame, por supuesto que ahora estoy haciendo pruebas en el ResourcesSettingsControllers

Elimine esto

$game_metal_basic_income = Functions::readConfig('metal_basic_income');
        $game_crystal_basic_income = Functions::readConfig('crystal_basic_income');
        $game_deuterium_basic_income = Functions::readConfig('deuterium_basic_income');
        $game_energy_basic_income = Functions::readConfig('energy_basic_income');
        $game_resource_multiplier = Functions::readConfig('resource_multiplier'); // Esto ya no se usa mas en el rediseño ahroa depende de la velocidad general por ahroa sigue siendo 2500 pero creo q en ogame es de 1 a 10 el maximo
public static function bonusMetalPosition($position, $universeSpeedFactor, $resourceBasicIncome)
    {
        // Aquí puedes implementar la lógica para detectar la posición del planeta del usuario

        switch ($position) {
            case 6:
            case 10:
                $positionFactor = 1.17;
                break;
            case 7:
            case 9:
                $positionFactor = 1.23;
                break;
            case 8:
                $positionFactor = 1.35;
                break;
            default:
                $positionFactor = 1;
                break;
        }

        // Calcula el bonus utilizando el factor de posición
        $bonus = floor($resourceBasicIncome * ($universeSpeedFactor / 2500) * $positionFactor);

        return $bonus;
    }

lo nuevo seria

$speedUniverse = Functions::readConfig('game_speed');
$metalBasicIncome = Functions::readConfig('metal_basic_income');

$game_metal_basic_income = ProductionLib::bonusMetalPosition($this->planet['planet_planet'], $speedUniverse, $metalBasicIncome);

Para el cristal seria lo mismo


public static function bonusCrystalPosition($position, $universeSpeedFactor, $resourceBasicIncome)
    {
        switch ($position) {
            case 1:
                $positionFactor = 1.4;
                break;
            case 2:
                $positionFactor = 1.296;
                break;
            case 3:
                $positionFactor = 1.2;
                break;
            default:
                $positionFactor = 1;
                break;
        }

        // Calcula el bonus utilizando el factor de posición
        $bonus = floor($resourceBasicIncome * ($universeSpeedFactor / 2500) * $positionFactor);

        return $bonus;
    }

Creo q debería andar esto

Position: 6 y 10 image

Recursos y basic income image

Universe 1 Germany Position: 10 image image

jonamix-ar commented 1 year ago

Game Speed x4

Position 6 and 10 image

Position 7 image

Position 8 image

LucasKovacs commented 1 year ago

So this is about the bonus/reduction per position?

jonamix-ar commented 1 year ago

So this is about the bonus/reduction per position?

es el bonus de posicion planetaria

LucasKovacs commented 1 year ago

I think some of these will got straight to v4