Ben si çà marche, il suffit de mettre à jour la formule de vitesse/accélération dans la base.
Exemple:
on a une progression de base linéaire:ressource=nb_ressource+vitesse*(temps-temps_dernier_changement)
on a une technologie qui elle permet une progression exponentiel: ressource=a*e^(b*(temps-temps_dernier_changement)) ou a et b les réglages de progression
rien ne nous empêche d'imaginer une table:
ressource(#(id_joueur, type), nb_ressource, timestamp, vitesse, a , b)
Donc juste un rajout de a et b...
Ensuite il suffit juste de changer la vue et le tour et jouer avec ma méthode on ne touche même pas au code php!
Exemple:
on a une progression de base linéaire:ressource=nb_ressource+vitesse*(temps-temps_dernier_changement)
on a une technologie qui elle permet une progression exponentiel: ressource=a*e^(b*(temps-temps_dernier_changement)) ou a et b les réglages de progression
rien ne nous empêche d'imaginer une table:
ressource(#(id_joueur, type), nb_ressource, timestamp, vitesse, a , b)
Donc juste un rajout de a et b...
Ensuite il suffit juste de changer la vue et le tour et jouer avec ma méthode on ne touche même pas au code php!
Code PHP :
<?php
CREATE VIEW ressources_calculees AS
SELECT
IIF(
NOT(ISNULL(vitesse)),
nb_ressource+vitesse/3600*(UNIX_TIMESTAMP()-timestamp),
nb_ressource+a*EXP(b*(UNIX_TIMESTAMP()-timestamp))
) AS nb_ressource_a_jour,id,type,[...] FROM t_ressources;
NB: ici je ne prend pas en compte la mise à jour par javascript ou analogue qui aurait pour but de mettre à jour l'affichage en temps réel, mais c'est tout à fait faisable. Attention toutefois à faire des requêtes régulière de vérification, pour s'assurer qu'il n'y a pas eu d'évènement indépendant des actions du joueur( le fameux cas du vol)... Mais comme le dit Anthor au pire à chaque action on repart sur le bon pied.